青青草国产精品视频,亚洲一区二区三区四区在线观看,国产精品1234区,日本黄色一级

長(zhǎng)沙網(wǎng)站開(kāi)發(fā)

長(zhǎng)沙網(wǎng)站開(kāi)發(fā):在PHP中使用浮點(diǎn)值時(shí)的注意事項(xiàng)

到目前為止,我們已經(jīng)看到了為什么在PHP中使用float值時(shí)會(huì)發(fā)生這種奇怪的行為。現(xiàn)在來(lái)看看我們?nèi)绾卧赑HP中處理這些浮點(diǎn)值。

比較PHP中的浮點(diǎn)值

首先,我們將看到如何在比較浮點(diǎn)值的同時(shí)陷入浮動(dòng)值的陷阱。我們將通過(guò)代碼示例以更好的方式理解這一點(diǎn)。請(qǐng)參考下面的幾個(gè)代碼塊來(lái)檢查相同:




4
$ a 5.69 
$ b 5.69 
var_dump $ a == $ b 
//輸出:bool(true)

在上面的代碼塊中,我們可以看到兩個(gè)值都相同并給出了正確的結(jié)果。現(xiàn)在讓我們檢查PHP中比較float值的棘手部分。




4
$ a 5.63 0.06 
$ b 5.69 
 var_dump $ a == $ b 
//輸出:bool(false)

在比較浮點(diǎn)值時(shí),快速簡(jiǎn)單地解決此問(wèn)題的方法是將其轉(zhuǎn)換為字符串并比較這些值。現(xiàn)在它將比較兩個(gè)字符串,它沒(méi)有任何精度錯(cuò)誤。




4
$ a 字符串 5.63 0.06 
$ b 字符串 5.69 
 var_dump $ a == $ b 
//輸出:bool(true)

如果您認(rèn)為(像我一樣)轉(zhuǎn)換為字符串會(huì)給我們一個(gè)正確的結(jié)果。但不是理想的解決方案,那么下一個(gè)解決方案就是為您服務(wù)。

要獲得上述問(wèn)題的解決方案,我們需要安裝PHP的BCMath PHP擴(kuò)展。您可以閱讀本文,了解如何在PHP中安裝PHP BCMath

完成BCMath擴(kuò)展安裝后,可以使用下面的代碼并獲得正確的結(jié)果。我們將使用bcadd方法而不是直接求和。




4
$一個(gè) bcadd 5.63  0.06  
$ B bcadd 5.69   
 var_dump $ a == $ b 
//輸出:bool(true)

讓我們看看同一種情況的另一個(gè)例子:


?