V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
andyJado
V2EX  ›  程序员

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

  •  
  •   andyJado ·
    AndyJado · 2022-12-09 20:29:07 +08:00 · 1042 次点击
    这是一个创建于 475 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    6 条回复    2022-12-10 12:11:56 +08:00
    Jooooooooo
        1
    Jooooooooo  
       2022-12-09 20:31:29 +08:00
    你用二进制的小数就不会有这个困扰了.

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

    rust 里面 float 不能判断相等
    agagega
        6
    agagega  
       2022-12-10 12:11:56 +08:00 via iPhone
    @andyJado
    也可以理解吧,毕竟不了解浮点数的很容易用错,要比较可以转换成 byte 再比较。就是没有 is_zero 有点奇怪
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1029 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 22:22 · PVG 06:22 · LAX 15:22 · JFK 18:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.