+0.0 减去 +0.0 在不同的语言中恒大于 0.0 吗?

2022-12-09 20:29:07 +08:00
 andyJado

我搁这写了个 loop 测试呢嘿嘿但觉得怪蠢的.

1063 次点击
所在节点    程序员
6 条回复
Jooooooooo
2022-12-09 20:31:29 +08:00
你用二进制的小数就不会有这个困扰了.

计算机不是十根指头算数的
andyJado
2022-12-09 20:34:52 +08:00
@Jooooooooo
意思+0.0 和 -0.0 的截断误差一定是落在完美零的两端的
netabare
2022-12-10 01:42:46 +08:00
float 的对比,好像是必须要算 delta 的吧。
agagega
2022-12-10 02:10:31 +08:00
1. (+0.0)-(+0.0) == +0.0; -0.0 - (+0.0) == -0.0
2. +0.0 == -0.0 (上面等号的意思是结果为,这个等号是说计算机指令在判断浮点数是否等于 0 时不会考虑符号)
andyJado
2022-12-10 10:23:10 +08:00
@agagega

rust 里面 float 不能判断相等
agagega
2022-12-10 12:11:56 +08:00
@andyJado
也可以理解吧,毕竟不了解浮点数的很容易用错,要比较可以转换成 byte 再比较。就是没有 is_zero 有点奇怪

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/901427

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX