gpt4 book ai didi

JavaScript 数字表示

转载 作者:行者123 更新时间:2023-12-02 18:10:30 26 4
gpt4 key购买 nike

这是一个著名的例子,在 javascript 控制台中记录 0.1 + 0.2 会产生

0.1 + 0.2 = 0.30000000000000004

对此的典型解释是,这是由于 javascript 表示数字的方式造成的。我对此有两个问题:

1)为什么 javascript 决定如何表示数字 - 难道不是“环境”(无论编译代码的是什么,是浏览器还是其他什么?)决定它如何表示数字?

2)为什么无法修复此行为以匹配大多数编程语言(java、c++ 等)。我的意思是 - 如果这种行为不是很好(大多数人都同意它不是),为什么不可能修复。 (Douglas Crockford 展示了其他 javascript 缺陷,例如“this”的奇怪行为,并且这种情况已经持续了 20 年。)是什么阻止了 javascript 修复这些错误?

最佳答案

Why does javascript decide how to represent numbers - isn't it the "environment"

那会很困惑。通过让 JavaScript 定义其基本类型的行为,我们可以依赖它们在不同环境中以这种方式表现。

好吧,“困惑”这个词相当强烈。我相信 C 从未定义过除了某些范围限制之外的 floatdouble 实际上是什么,公平地说,C 曾经并且可以说是非常成功的,“困惑”和所有。尽管如此,现代趋势还是把事情变得更加明确。

Why is it impossible to fix this behavior to match most programming languages(java , c++ etc)

这是大多数现代编程语言的行为。大多数现代编程语言使用 IEEE-754单精度(通常为“float”)和 double (通常为“double”)精度 float :

关于JavaScript 数字表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19752843/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com