PHP中兩個float(浮點數(shù))比較實例分析
本文實例講述了PHP中兩個float(浮點數(shù))比較方法。分享給大家供大家參考。具體如下:
最近在開發(fā)一個合同管理系統(tǒng)的時候,涉及到兩個浮點數(shù)比較,算是把我郁悶慘了。
在N久以前,就不曉得從哪里聽來的一個“不要用等號去比較浮點數(shù)”的“真理”,自己平時也在用,好像沒有出現(xià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);
結(jié)果是:
float(12300)
float(12300)
bool(false)
后來才知道在PHP中,要比較兩個浮點數(shù)的大小,可以用bccomp(參數(shù)1,參數(shù)2,小數(shù)位)來比較。
<?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));
結(jié)果:
float(12300)
float(12300)
int(0) // 0表示兩個浮點數(shù)值相等
bccomp函數(shù)具體用法可參考PHP手冊。
希望本文所述對大家的php程序設(shè)計有所幫助。
相關(guān)文章
PHP編程實現(xiàn)的TCP服務(wù)端和客戶端功能示例
這篇文章主要介紹了PHP編程實現(xiàn)的TCP服務(wù)端和客戶端功能,結(jié)合實例形式分析了php基于socket實現(xiàn)TCP服務(wù)器端與客戶端通信功能的相關(guān)配置、定義與使用技巧,需要的朋友可以參考下2018-04-04
原生JS實現(xiàn)Ajax通過GET方式與PHP進(jìn)行交互操作示例
這篇文章主要介紹了原生JS實現(xiàn)Ajax通過GET方式與PHP進(jìn)行交互操作,涉及javascript ajax交互及php數(shù)據(jù)接收、處理與數(shù)據(jù)庫查詢相關(guān)操作技巧,需要的朋友可以參考下2018-05-05
PHP中使用sleep造成mysql讀取失敗的案例和解決方法
這篇文章主要介紹了PHP中使用sleep造成mysql讀取失敗的案例和解決方法,如果遇到這個問題,可能會耗費你N久的時間,希望你能快速的搜索到這篇文章吧,需要的朋友可以參考下2014-08-08

