這篇文章主要介紹了PHP中兩個float(浮點數)比較,以完整實例形式分析了bccomp函數用于浮點數比較的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了PHP中兩個float(浮點數)比較方法。分享給大家供大家參考。具體如下:
最近在開發一個合同管理系統的時候,涉及到兩個浮點數比較,算是把我郁悶慘了。
在N久以前,就不曉得從哪里聽來的一個“不要用等號去比較浮點數”的“真理”,自己平時也在用,好像沒有出現啥問題,可這次問題總算是來了。
- <?php
- $sum = "12300.00";
- $a = "10000.30";
- $b = "2000.30";
- $c = "299.40";
- $sum = (float) $sum;
- $s = (float) ($a+$b+$c);
- var_dump($sum, $s);
- var_dump($sum==$s);
結果是:
float(12300)
float(12300)
bool(false)
后來才知道在PHP中,要比較兩個浮點數的大小,可以用bccomp(參數1,參數2,小數位)來比較。
- <?php
- $sum = "12300.00";
- $a = "10000.30";
- $b = "2000.30";
- $c = "299.40";
- $sum = (float) $sum;
- $s = (float) ($a+$b+$c);
- var_dump($sum, $s);
- var_dump(bccomp($sum,$s,2));
結果:
float(12300)
float(12300)
int(0) // 0表示兩個浮點數值相等
bccomp函數具體用法可參考PHP手冊。
希望本文所述對大家的php程序設計有所幫助。
新聞熱點
疑難解答