新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
php7采坑記:浮點型數(shù)據(jù)比較-創(chuàng)新互聯(lián)
今天在項目中遇到一個奇怪的問題,經(jīng)過計算后的double類型的變量的值相等的兩個變量進行比較,結(jié)果卻是不相等。

得到結(jié)果如下圖,明明兩個變量的值是一樣的,做'=='比較運算卻返回false

原因是php7中的浮點數(shù) 經(jīng)過 /,*,round()等一系列運算后,精度發(fā)生了變化。
解決方案:將任意精度的變量作為字符串進行比較。
php7中已經(jīng)提供較好的解決方案.
(PHP 4, PHP 5, PHP 7) bccomp — 比較兩個任意精度的數(shù)字 說明 int bccomp( string $left_operand, string $right_operand[, int $scale = int ] ) 把right_operand和left_operand作比較, 并且返回一個整數(shù)的結(jié)果.最終使用bccomp()來進行比較解決問題
if(bccomp((string)$b,(string)$d,2) === 0){ echo "yes \n"; }else{ echo "no \n"; }另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
文章標題:php7采坑記:浮點型數(shù)據(jù)比較-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://www.dlmjj.cn/article/hjcdo.html


咨詢
建站咨詢
