我有以下代码:

10.00000001.toLocaleString('en-GB', {useGrouping: true, minimumFractionDigits: 2})


我希望它返回'10.00000001',但是我得到的是10.00
当我更改最小值时,准确性也会随之更改。

最小值就像最大值一样。

设置maximumFractionDigits不会更改任何内容。它被完全忽略。

我在节点8.1.4和FF Quantum中对此进行了测试。

为什么toLocaleString如此奇怪的任何想法?

最佳答案

根据文档https://www.jsman.net/manual/Standard-Global-Objects/Number/toLocaleString,最小值是您想要的十进制数字位数。
下面的两个例子将给人清晰的认识



var n = 10.00000001;
var x;
// It will give 8 decimal point because min is 0 (i.e. Atleast it should have one decimal point) and max it can have till 8
x = n.toLocaleString('en-GB', {useGrouping: true, minimumFractionDigits: 0, maximumFractionDigits: n.toString().split('.')[1].length});
console.log(x);
// If you put value 2.301 it gives 2.3 since it omits 0 in 2.30 (i.e.
n = 2.311;
// It will give 1 decimal point because min to max is 1
x = n.toLocaleString('en-GB', {useGrouping: true, minimumFractionDigits: 1, maximumFractionDigits: 2});
console.log(x);
// It will give 1 decimal point eventhough we didn't have decimal points
n = 2;
x = n.toLocaleString('en-GB', {useGrouping: true, minimumFractionDigits: 1});
console.log(x);

关于javascript - Number.toLocaleString(),minimumFractionDigits的作用类似于最大值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47742977/

10-09 17:24