修复小数计算精度不准确方法

Posted qdjl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了修复小数计算精度不准确方法相关的知识,希望对你有一定的参考价值。

Number.prototype.mul = function (arg) {
        var m = 0, s1 = this.toString(), s2 = arg.toString();
        try {
            m += s1.split(‘.‘)[1].length
        } catch (e) {
        }
        try {
            m += s2.split(‘.‘)[1].length // m是累加结果
        } catch (e) {
        }
        return Number(s1.replace(‘.‘, ‘‘)) * Number(s2.replace(‘.‘, ‘‘)) / Math.pow(10, m) // 直接去掉小数点,转为整型计算,最后缩小n倍
    };

function louis(arg){
    var m=0, s1 = arg.toString();
    try {
      m = s1.split(‘.‘)[1].length; 
    } catch (e) {
    }
    return Number(s1.replace(‘.‘,‘‘))/Math.pow(10,m-2)
};

 

以上是关于修复小数计算精度不准确方法的主要内容,如果未能解决你的问题,请参考以下文章

NSDecimalNumber用于精度准确的计算

BigDecimal 高精度计算 熟悉扩展,java除法保留小数问题

bigdecimal长度包含小数位吗

js小数加减时精度不准确

js精度计算

double发生精度丢失的解决办法