$a = 12345678912345678.8;
$b = 12345678912345678.9;
Bei diesen beiden unterschiedlichen Zahlen ist if($a == $b){echo 'equal';} die Ergebnisausgabe „gleich“, und ich weiß, dass sie zu groß ist und den Bereich überschreitet : 1.2345678912346E +16 hexadezimal, was ist der beste Weg, so große Datenmengen zu vergleichen?
php BC高精确度函数库
经过自己电脑上测试当长度超过14位时, PHP就会益出。 不一样的系统 不一样的PHP版本长度益出会不一样。
相关资料 官方手册
方法1:
方法2:
这里只提供下思路
如果想要直接通过浮点来比较没有找到方法。
先将以.分隔
获取整数部分位数,比较长度,再比较大小。
诺整数部分相等再比较小数部分。
Tip:考虑到数的无限大,也要注意分隔之后的数长度的益出,若益出再进行分隔。