V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
andyJado
V2EX  ›  程序员

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

  •  
  •   andyJado ·
    AndyJado · Dec 9, 2022 · 1609 views
    This topic created in 1244 days ago, the information mentioned may be changed or developed.

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

    6 replies    2022-12-10 12:11:56 +08:00
    Jooooooooo
        1
    Jooooooooo  
       Dec 9, 2022
    你用二进制的小数就不会有这个困扰了.

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

    rust 里面 float 不能判断相等
    agagega
        6
    agagega  
       Dec 10, 2022 via iPhone
    @andyJado
    也可以理解吧,毕竟不了解浮点数的很容易用错,要比较可以转换成 byte 再比较。就是没有 is_zero 有点奇怪
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1040 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 18:42 · PVG 02:42 · LAX 11:42 · JFK 14:42
    ♥ Do have faith in what you're doing.