我想以灵活的方式向用户显示数字信息。toFixed
并且toPrecision
总是用零填充,这是不可取的。理想情况下,我可以这样表达:
- 5.450000000001 应显示为“5.45”
- 6.0 应显示为“6”
- 5.45001 应该显示为“5.45001”,但我还想明确地说“使用不超过 2 个小数位”,在这种情况下应该显示为“5.45”。
有没有好的 JS 库以这种方式显示数字?如果没有,是否有可以翻译的其他语言的好图书馆?
我想以灵活的方式向用户显示数字信息。toFixed
并且toPrecision
总是用零填充,这是不可取的。理想情况下,我可以这样表达:
有没有好的 JS 库以这种方式显示数字?如果没有,是否有可以翻译的其他语言的好图书馆?
为此,您可能不需要整个库。例如,您可以只使用toFixed(2)
然后去除尾随0
s 和尾随小数点:
function format_number(x){
return ((+x).toFixed(2)+'').replace(/\.?0*$/, '');
}
用法:
format_number(5.450000000001); // "5.45"
format_number("6.0"); // "6"
format_number("5.45001"); // "5.45"
接受最大小数点数作为可选参数也很容易:
function format_number(x, digits){
if(typeof digits != 'number')
digits = 2;
return ((+x).toFixed(digits)+'').replace(/\.?0*$/, '');
}
format_number(5.45001); // "5.45"
format_number(5.45001, 5); // "5.45001"