真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php中浮點(diǎn)數(shù)比較的示例分析-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)php中浮點(diǎn)數(shù)比較的示例分析的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)雅安服務(wù)器托管、營(yíng)銷軟件、網(wǎng)站建設(shè)、色尼網(wǎng)站維護(hù)、網(wǎng)站推廣。

浮點(diǎn)數(shù)運(yùn)算精度問(wèn)題

首先看一個(gè)例子:

$a+$b==$c 返回true,正確
$c-$b==$a 返回false,錯(cuò)誤

為什么會(huì)這樣呢?

運(yùn)算后,精度為20位時(shí)實(shí)際返回的內(nèi)容如下:

$c-$b 為 0.09999999999999997780,因此與0.1比較返回false

出現(xiàn)這個(gè)問(wèn)題是因?yàn)楦↑c(diǎn)數(shù)計(jì)算涉及精度,當(dāng)浮點(diǎn)數(shù)轉(zhuǎn)為二進(jìn)制時(shí)有可能會(huì)造成精度丟失。

浮點(diǎn)數(shù)轉(zhuǎn)二進(jìn)制方法

整數(shù)部分采用除以2取余方法

小數(shù)部分采用乘以2取整方法

例如:把數(shù)字8.5轉(zhuǎn)為二進(jìn)制

整數(shù)部分是8

8/2=4 8%2=0
4/2=2 4%2=0
2/2=1 2%2=0

1比2小,因此不需要計(jì)算下去,整數(shù)8的二進(jìn)制為 1000

小數(shù)部分是0.5

0.5x2 = 1.0

因取整后小數(shù)部分為0,因此不需要再計(jì)算下去

小數(shù)0.5的二進(jìn)制為 0.1

8.5的二進(jìn)制為1000.1

計(jì)算數(shù)字0.9的二進(jìn)制

0.9x2=1.8
0.8x2=1.6
0.6x2=1.2
0.2x2=0.4
0.4x2=0.8
0.8x2=1.6

…. 之后不斷循環(huán)下去,當(dāng)截取精度為N時(shí),N后的數(shù)會(huì)被舍去,導(dǎo)致精度丟失。

上例中0.9在轉(zhuǎn)為二進(jìn)制時(shí)精度丟失,導(dǎo)致比較時(shí)出現(xiàn)錯(cuò)誤。

所以永遠(yuǎn)不要相信浮點(diǎn)數(shù)已精確到最后一位,也永遠(yuǎn)不要比較兩個(gè)浮點(diǎn)數(shù)是否相等。

正確比較浮點(diǎn)數(shù)的方法

1.使用round方法處理后再比較

例子:

2.使用高精度運(yùn)算方法

首先進(jìn)行運(yùn)算時(shí),使用高精度的運(yùn)算方法,這樣可以保證精度不丟失。

高精度運(yùn)算的方法如下:

bcadd將兩個(gè)高精度數(shù)字相加

bccomp比較兩個(gè)高精度數(shù)字,返回-1,0,1

bcdiv 將兩個(gè)高精度數(shù)字相除

bcmod 求高精度數(shù)字余數(shù)

bcmul 將兩個(gè)高精度數(shù)字相乘

bcpow 求高精度數(shù)字乘方

bcpowmod 求高精度數(shù)字乘方求模

bcscale 配置默認(rèn)小數(shù)點(diǎn)位數(shù),相當(dāng)于Linux bc中的”scale=”

bcsqrt 求高精度數(shù)字平方根

bcsub將兩個(gè)高精度數(shù)字相減

例子:

感謝各位的閱讀!關(guān)于“php中浮點(diǎn)數(shù)比較的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!


當(dāng)前題目:php中浮點(diǎn)數(shù)比較的示例分析-創(chuàng)新互聯(lián)
文章源于:http://weahome.cn/article/ddsgjc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部