这是一个著名的例子,在 javascript 控制台记录 0.1 + 0.2 产生
0.1 + 0.2 = 0.30000000000000004
对此的典型解释是,它的发生是因为 javascript 表示数字的方式。我对此有两个问题:
1)为什么javascript决定如何表示数字 - 它不是“环境”(无论它正在编译代码,是浏览器还是其他东西?)决定它想要如何表示数字的工作?
2)为什么无法修复此行为以匹配大多数编程语言(java、c++ 等)。我的意思是 - 如果这种行为不是很好(大多数人会同意它不是),为什么无法修复。(Douglas Crockford 展示了其他 javascript 缺陷,例如 'this' 的怪异行为,20 年来一直如此。)。是什么阻止了 javascript 修复这些错误?