2

这里我的网络应用程序有问题(在 chrome 和 firefox 和 nodejs 上测试):

当我运行 (1.2 - 1) 它返回 0.199999999999999996 作为结果。

有谁知道为什么?

4

2 回答 2

3

你可以解决你的问题: (1.2 - 1).toFixed(1) * 1 // 0.2

于 2013-02-06T11:38:16.140 回答
1

您可以使用 javascript 的 toFixed 方法更详细:

数法

在 JavaScript 1.5 中实现

ECMAScript 版 ECMAScript 第 3 版

句法

number.toFixed([数字])

范围

小数点 后出现的位数;这可以是 0 到 20 之间的值,包括 0 和 20,并且实现可以选择支持更大范围的值。如果省略此参数,则将其视为 0。

退货

数字的字符串表示形式,不使用指数表示法,并且在小数点后具有精确的数字。必要时对数字进行四舍五入,必要时用零填充小数部分,使其具有指定的长度。如果 number 大于 1e+21,此方法只需调用 Number.toString() 并以指数表示法返回一个字符串。

投掷

RangeError 如果数字太小或太大。介于 0 和 20 之间的值(包括 0 和 20)不会导致 RangeError。实现也可以支持更大或更小的值。TypeError 如果在不是数字的对象上调用此方法。

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toFixed

于 2013-02-06T11:34:16.327 回答