0

这种让我大开眼界。。

http://pastebin.com/Q3MtpPpM

结果输出是“惊喜!!”。如果程序要使用大量浮点值,这种方式不会以某种方式破坏使用 JavaScript 吗?

4

2 回答 2

0

Javascript 数字是 64 位浮点数。请参阅此 ECMAScript 规范。

http://www.ecma-international.org/ecma-262/5.1/#sec-4.3.19

任何编程语言中的浮点运算都容易出错,并且并不总是保证准确。有关浮点 airthmatic 的更多信息,请参见以下内容

http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html

有关更多信息,请参阅以下 QA

浮点数学被破坏了吗?

是的,它是一个WAT,但遵循规则可以帮助您避免错误

  1. 不要做平等检查
  2. 在关键浮动的情况下,您知道面额后的最大点数,例如货币商店乘以该基数的值。

以美分而不是美元为单位的货币存储。

54.67 为 5467 --- 并在显示前除以 100。

有关更多信息,请阅读以下帖子(它适用于 c++,但会提供有关浮点错误的见解)

http://www.codeproject.com/Articles/29637/Five-Tips-for-Floating-Point-Programming

于 2013-10-15T09:50:18.880 回答
0

比较浮点数的一种方法是使用 toFixed() 方法将它们转换为字符串值

var fl1 = 0.11;
var fl2 = 0.11;

if ( fl1.toFixed(10) == fl2.toFixed(10) )
{
  //same value
}
于 2013-10-15T09:33:38.670 回答