代码之家  ›  专栏  ›  技术社区  ›  Deckard

PHP浮点计算的准确性

php
  •  4
  • Deckard  · 技术社区  · 14 年前
    $fooValue = 100.68;
    $cowValue = 100.67;
    
    $diffValue = $fooValue - $cowValue;
    if($diffValue <= 0.01) {
        echo("success");
    } else {
        echo("error");
    }
    

    这将显示“错误”。

    我知道在爪哇该怎么做。但是我不擅长PHP,尤其是在计算方面。

    请帮帮我。我是说如何成功?

    1 回复  |  直到 14 年前
        1
  •  6
  •   Emil Vikström    14 年前

    float是一个不精确的数据类型(就像所有浮点数据类型一样),因为在转换二进制数据时可能会丢失精度。这就是为什么在需要高(精确)精度时不应该使用浮点运算的原因。

    在PHP中,签出 BC Math GMP 图书馆。后者只适用于整数,但它具有很高的性能,有时可以转换为整数或从整数转换而不丢失精度。