• 请不要在回答技术问题时复制粘贴 AI 生成的内容
andyJado
V2EX  ›  程序员

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

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

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

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

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

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