如何在js中更改toFixed()函数的限制?

时间:2017-07-27 16:16:04

标签: javascript

我希望能够使用具有任意数字的标准toFixed()函数(官方允许使用0到20之间的值)

我不知道如何更改限制,因此我发现此库允许指定任意数字:

https://github.com/MikeMcl/big.js/blob/master/big.js

我不想使用整个库只是为了能够运行这个功能。请帮助我理解这个库如何实现这个任意长度的toFixed()函数?

更新

例如在python中,一个名为Decimal的模块可以根据需要计算任意数量的浮动数字:

>>> num1 = 4857932878236943867839468934782
>>> num2 = 1328768938470-2699462978
>>> result = Decimal(num1) / Decimal(num2)
>>> result
3663407512215411920.125441595041830470639118971082230413476294397448265790489938870721

1 个答案:

答案 0 :(得分:1)

或者您可以使用简单的功能

var numberStr = '20.83953272434765327423485345342342345';

function toFixed(nbr, precision) {
    let nSplit = nbr.split('.');
    return nSplit[0] + '.' + nSplit[1].substring(0, precision);
}
console.log( toFixed(numberStr, 22) );

//or you could extend String.prototype as

String.prototype.toLongFixed = function(precission) {
    let split = this.split('.');
    return split[0] + '.' + split[1].substring(0, precission);
}

console.log( numberStr.toLongFixed(33) );