这种让我大开眼界。。
结果输出是“惊喜!!”。如果程序要使用大量浮点值,这种方式不会以某种方式破坏使用 JavaScript 吗?
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,但遵循规则可以帮助您避免错误
以美分而不是美元为单位的货币存储。
54.67 为 5467 --- 并在显示前除以 100。
有关更多信息,请阅读以下帖子(它适用于 c++,但会提供有关浮点错误的见解)
http://www.codeproject.com/Articles/29637/Five-Tips-for-Floating-Point-Programming
比较浮点数的一种方法是使用 toFixed() 方法将它们转换为字符串值
var fl1 = 0.11;
var fl2 = 0.11;
if ( fl1.toFixed(10) == fl2.toFixed(10) )
{
//same value
}