1

我想以灵活的方式向用户显示数字信息。toFixed并且toPrecision总是用零填充,这是不可取的。理想情况下,我可以这样表达:

  • 5.450000000001 应显示为“5.45”
  • 6.0 应显示为“6”
  • 5.45001 应该显示为“5.45001”,但我还想明确地说“使用不超过 2 个小数位”,在这种情况下应该显示为“5.45”。

有没有好的 JS 库以这种方式显示数字?如果没有,是否有可以翻译的其他语言的好图书馆?

4

1 回答 1

2

为此,您可能不需要整个库。例如,您可以只使用toFixed(2)然后去除尾随0s 和尾随小数点:

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"
于 2013-09-11T23:43:28.663 回答