美文网首页php知识积累程序员
js浮点数运算不准确

js浮点数运算不准确

作者: hey_沙子 | 来源:发表于2018-03-22 11:22 被阅读7次

    JavaScript的计算结果:

    // 加法 =====================
    // 0.1 + 0.2 = 0.30000000000000004
    // 0.7 + 0.1 = 0.7999999999999999
    // 0.2 + 0.4 = 0.6000000000000001
    // 2.22 + 0.1 = 2.3200000000000003

    // 减法 =====================
    // 1.5 - 1.2 = 0.30000000000000004
    // 0.3 - 0.2 = 0.09999999999999998

    // 乘法 =====================
    // 19.9 * 100 = 1989.9999999999998
    // 19.9 * 10 * 10 = 1990
    // 1306377.64 * 100 = 130637763.99999999
    // 1306377.64 * 10 * 10 = 130637763.99999999
    // 0.7 * 180 = 125.99999999999999
    // 9.7 * 100 = 969.9999999999999
    // 39.7 * 100 = 3970.0000000000005

    // 除法 =====================
    // 0.3 / 0.1 = 2.9999999999999996
    // 0.69 / 10 = 0.06899999999999999

    结合我的需求,两个数字作运算,得到的是整数,则输出整数,小数1位则保留一位,小数两位及以上均保留两位,我作出以下调整:

    js:
    shengPrice=shengPrice.toFixed(2);//强转为两位
    if(shengPrice.substr(shengPrice.length-1,1)=="0"){//若小数点最后一位是0 则去掉1.00~1.0 ,1,20~1.2
         shengPrice= shengPrice.substring(0,shengPrice.length-1);
    }
    
    php
    / * 整数的显示整数,有小数点价格有一位显示一位,有两位显示两位小数点,最多显示两位。
     * @return type
     */
    public function getFloatLength($num) {
        $count = 0;
        $temp = explode ( '.', $num );
        if (sizeof ( $temp ) > 1) {
        $decimal = end ( $temp );
        $count = strlen ( $decimal );
        }
        if($count>2){
            $num=number_format($num, 2, '.', '');
        }
        return $num;
    }

    相关文章

      网友评论

        本文标题:js浮点数运算不准确

        本文链接:https://www.haomeiwen.com/subject/mxaoqftx.html