最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP下的浮點(diǎn)運(yùn)算不準(zhǔn)的解決方法

 更新時(shí)間:2016年10月27日 10:47:28   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇PHP下的浮點(diǎn)運(yùn)算不準(zhǔn)的解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

最近在做一個(gè)?的相加減問(wèn)題是,出現(xiàn)了浮點(diǎn)運(yùn)算不準(zhǔn)的情況,看來(lái)都說(shuō)解釋型語(yǔ)言對(duì)于浮點(diǎn)運(yùn)算都會(huì)有問(wèn)題的說(shuō)法是真的。

首先看一段代碼:

<?php
$a = 0.1;
$b = 0.7;
var_dump(($a + $b) == 0.8);

打印出來(lái)的值居然為 boolean false

這是為啥?PHP手冊(cè)對(duì)于浮點(diǎn)數(shù)有以下警告信息:

Warning

浮點(diǎn)數(shù)精度

顯然簡(jiǎn)單的十進(jìn)制分?jǐn)?shù)如同 0.1 或 0.7 不能在不丟失一點(diǎn)點(diǎn)精度的情況下轉(zhuǎn)換為內(nèi)部二進(jìn)制的格式。這就會(huì)造成混亂的結(jié)果:例如,floor((0.1+0.7)*10) 通常會(huì)返回 7 而不是預(yù)期中的 8,因?yàn)樵摻Y(jié)果內(nèi)部的表示其實(shí)是類(lèi)似 7.9999999999...。

這和一個(gè)事實(shí)有關(guān),那就是不可能精確的用有限位數(shù)表達(dá)某些十進(jìn)制分?jǐn)?shù)。例如,十進(jìn)制的 1/3 變成了 0.3333333. . .。

所以永遠(yuǎn)不要相信浮點(diǎn)數(shù)結(jié)果精確到了最后一位,也永遠(yuǎn)不要比較兩個(gè)浮點(diǎn)數(shù)是否相等。如果確實(shí)需要更高的精度,應(yīng)該使用任意精度數(shù)學(xué)函數(shù)或者 gmp 函數(shù)

那么上面的算式我們應(yīng)該改寫(xiě)為<?php$a = 0.1;$b = 0.7;var_dump(bcadd($a,$b,2) == 0.8);這樣就能解決浮點(diǎn)數(shù)的計(jì)算問(wèn)題了

以上就是小編為大家?guī)?lái)的PHP下的浮點(diǎn)運(yùn)算不準(zhǔn)的解決方法全部?jī)?nèi)容了,希望大家多多支持腳本之家~

相關(guān)文章

最新評(píng)論

海原县| 静乐县| 海口市| 康马县| 禄劝| 开鲁县| 莎车县| 河池市| 醴陵市| 闻喜县| 西平县| 银川市| 会昌县| 资兴市| 松桃| 博兴县| 汽车| 德格县| 鹤山市| 城口县| 贞丰县| 梓潼县| 沂水县| 新津县| 稻城县| 柳江县| 巴南区| 陇川县| 如皋市| 嘉善县| 阳原县| 阿克苏市| 哈尔滨市| 西平县| 肥城市| 龙江县| 张家界市| 衡阳县| 新沂市| 小金县| 海安县|