|
1
3
更准确的答案是:
如纸和铅笔所示:
该商作为双精度数的最精确二进制表示是:
小数形式为:
现在,如果将二进制表示法减少一,如下所示:
那么它等于:
如果你愿意 增加 原始二进制数乘以1,如下所示:
那么等于:
因此,这些数字有精确的双精度二进制表示:
可以使用联机转换器验证上述内容,例如 here . 所以教训是: 整数除法将给出正确的答案(即商的整数部分)floating-point除法依赖于数字的二进制表示,这并不总是精确的。 超出了本答案的范围,但需要阅读 真正地 理解以下任何一点: 上面的二进制数如何表示它们的十进制等价物?
算法的区别是什么
|
|
|
2
-1
Lua的数字是双精度的,对吧一旦超过2^52,整数表示中的间隙就越来越大。 568784642688024576大于2^58,因此您可能会遇到其中一些间隙如果是这样,那么看起来//正确地解释了间隙,而floor可能没有。 如果您的代码处理接近2^64的整数值是很重要的,那么您可能需要寻找一个插件或其他可以使用64位整数的东西。或者如果你需要处理更大的数字,可能会有一个库或一些东西来处理非常大的数字。 |
|
|
Daniel Wagner · 如何使用带有管道的luv? 1 年前 |
|
|
Naruto_333 · Roblox:函数不循环或添加“货币”值 1 年前 |
|
|
Lukas Raby · 玩Tween后,零件位置被锁定 1 年前 |
|
|
Noway · 为什么roblox工作室在桌子上走错了路 1 年前 |
|
|
localhorst · 索引处的铁路超高访问表条目 1 年前 |