zoukankan      html  css  js  c++  java
  • 2018/04/02 PHP 中的浮点数计算问题

    首先抛出一个问题

    var_dump((0.1 + 0.2) == 0.3);
    

    这个判断是否正确呢?

    它的输出是

    false

    是否和你想的一样呢?

    --

    浮点精度运算可以说是每个语言都必有的问题。因为这个是计算机的存储bug。

    原理在网上也有很多,可是对于我们来说解决问题更重要。

    --

    关于浮点数的计算问题

    1:首先考虑高精度 bc 计算函数

    var_dump(bcadd(0.1, 0.2, 1) == 0.3); //true
    

    其他函数 参见php手册关于bc函数

    2:将浮点型转化为字符型进行计算

    var_dump((0.1+0.2)."" == 0.3); // true

     还有其他问题自己遇到话在补充

      

  • 相关阅读:
    Serialize&Deserialize
    Async&Await
    Generic
    Enum
    Array
    String
    Nullable
    Collection
    Class&Struct
    Interface
  • 原文地址:https://www.cnblogs.com/25-lH/p/8697710.html
Copyright © 2011-2022 走看看