一尘不染

如何在JavaScript中舍入数字?.toFixed()返回字符串?

javascript

我在这里想念什么吗?

var someNumber = 123.456;
someNumber = someNumber.toFixed(2);
alert(typeof(someNumber));
//alerts string

为什么.toFixed()返回一个字符串?

我想将数字四舍五入为2个十进制数字。


阅读 866

收藏
2020-05-01

共1个答案

一尘不染

它之所以返回一个字符串,是因为在二进制浮点系统中,0.1及其幂(用于显示十进制小数)不能表示(至少不能完全准确)。

例如,0.1确实是0.1000000000000000055511151231257827021181583404541015625,而0.01确实是0.01000000000000000020816681711721685132943093776702880859375。(感谢您BigDecimal证明我的观点。:-P)

因此(缺少十进制浮点数或有理数类型),将其作为字符串输出是将其修整到精确显示所需精度的唯一方法。

2020-05-01