程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP中兩個float(浮點數)比較實例分析

PHP中兩個float(浮點數)比較實例分析

編輯:PHP綜合

本文實例講述了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程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved