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

PHP 浮点数相减的问题

  •  
  •   hellohacker · Apr 15, 2014 · 4698 views
    This topic created in 4586 days ago, the information mentioned may be changed or developed.
    <?php
    $d =2.99-1-1.99;
    echo $d;
    ?>
    输出结果 为什么不是 0 呢 ? 是 2.22044604925E-16

    怎样才能输出0 呢?

    我的做法是 每个数 乘以100 然后 运算完 除以 100
    7 replies  •  1970-01-01 08:00:00 +08:00
    Ricepig
    Ricepig
    Apr 15, 2014
    1
    基础知识啊。。。

    判断浮点数是不是等于0,不是用$d == 0,而是abs($d) < EPS,这个EPS是个很小的值。
    young
    young
    Apr 15, 2014
    2
    基础知识啊。。。
    你需要的是 php的bc math
    http://www.php.net/manual/en/ref.bc.php
    mahone3297
    mahone3297
    Apr 15, 2014
    3
    计算机的问题,跟php无关。。。
    jsonline
    jsonline
    Apr 15, 2014 via Android
    4
    楼主,计算机很傻的
    zog
    zog
    Apr 15, 2014
    5
    计算机存储都是2进制,十进制浮点数有时候无法完全对应二进制。所以经常会出现这种情况。
    zog
    zog
    Apr 15, 2014
    6
    python下控制台下输入2.3 + 2.4,结果是:4.69999999999999999
    txlty
    txlty
    Apr 15, 2014
    7
    直接贴到地址栏:
    javascript:alert(16.9*100);
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5086 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 06:40 · PVG 14:40 · LAX 22:40 · JFK 01:40
    ♥ Do have faith in what you're doing.