【发布时间】:2016-01-18 13:59:00
【问题描述】:
我有一个文本框,形成我需要将 float 值传递给 api 的文本框。
现在,当文本框中的值为“18.575”或“18.09483”时,一切正常。
但如果值为“18.000”,则无法正常工作。我知道 18.000 与 18 相同,但我需要精确数字。
所以问题是 我在 JavaScript 中需要精确的 18.00 而不是 18
我试过了
a) parseFloat
parseFloat("18.000"); // I get 18
b) 固定
(18).toFixed(2) // I get `"18.00"` but it is string and doesn't solve the purpose.
c) 编号
Number("18.00") // 给出 18 而不是 18.00
提前感谢您的帮助
【问题讨论】:
-
在表达式中使用时使用数字,向用户显示时使用字符串。
-
号码
18.000与号码18完全相同。换句话说,这两者的内部表示是逐位相同的。二进制浮点表示不能保留精度信息。你必须找到一个定点库。 -
@Tushar ,我试过号码,但它也不起作用
-
18.00 只能作为字符串存在。作为数字或浮点数,它是 18。
-
那么你将不得不使用字符串,而不是数字,并且解析为数字没有意义
标签: javascript jquery floating-point numbers precision