如果在Javascript中超过8位小数,如何将数字舍入到8位小数

时间:2015-12-22 21:07:13

标签: javascript bitcoin

我正在尝试检查输入的数字是否超过8位小数,如果确实如此,那么我想将其舍回到小数点后8位。但是,当我输入数字1.234001时,它会自动将其舍入到8位小数。 (1.234001 / 0.00000001)%1 = 0所以我不确定为什么要四舍五入。 这是我的代码

var SAT = 0.00000001;
if(!isNaN(input.value) && ((input.value / SAT) % 1 != 0)) {
                input.value = parseFloat(input.value).toFixed(8);
                console.log(6);
            }

1 个答案:

答案 0 :(得分:1)

以这种方式尝试:

function nrOfDecimals(number) {
    var match = (''+number).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);
    if (!match) { return 0; }

    var decimals =  Math.max(0,
       (match[1] ? match[1].length : 0)
       // Correct the notation.
       - (match[2] ? +match[2] : 0));

     if(decimals > 8){
        //if decimal are more then 8
        number = parseFloat(number).toFixed(8);
     }
     //else no adjustment is needed
     return number;
}