亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

PHP中浮點數計算比較及取整不準確的解決方法

2024-05-04 23:30:04
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了PHP 浮點數計算比較及取整不準確的解決方法,需要的朋友可以參考下
 

浮點數計算結果比較
一則浮點數計算例子如下:

 

復制代碼代碼如下:

$a = 0.2+0.7;
$b = 0.9;
var_dump($a == $b);

 

打印出的結果是:bool(false)。也就是說在這里 0.2+0.7 的計算結果與 0.9 并不相等,這顯然是有違我們的常識的。

對此問題,PHP官方手冊曾又說明:顯然簡單的十進制分數如 0.2 不能在不丟失一點點精度的情況下轉換為內部二進制的格式。這和一個事實有關,那就是不可能精確的用有限位數表達某些十進制分數。例如,十進制的 1/3 變成了 0.3333333...。

我們將上面的變量用雙精度格式打印出來:

 

復制代碼代碼如下:

$a = 0.2+0.7;
$b = 0.9;
printf("%0.20f", $a);
echo '<br />';
printf("%0.20f", $b);

 

輸出結果如下:

 

復制代碼代碼如下:

0.89999999999999991118
0.90000000000000002220

 

顯然在這里,實際上作為浮點型數據,其精度已經損失了一部分,達不到完全精確。所以永遠不要相信浮點數結果精確到了最后一位,也永遠不要比較兩個浮點數是否相等。需要說明的是,這不是PHP的問題,而是計算機內部處理浮點數的問題!在 C、JAVA 等語言中也會遇到同樣的問題。

所以要比較兩個浮點數,需要將其控制在我們需要的精度范圍內再行比較,因此使用 bcadd() 函數來對浮點數想加并進行精度轉換(為字符串):

 

復制代碼代碼如下:

var_dump(bcadd(0.2,0.7,1) == 0.9); // 輸出:bool(true) 

 

浮點數取整

在《PHP 取整函數 ceil 與 floor》一文中,曾有例子:

 

復制代碼代碼如下:

<?php
echo ceil(2.1/0.7);    // 輸出:4
?>

 

經過上面對浮點數計算的探討,知道這是浮點數計算結果不完全精確造成的:

 

復制代碼代碼如下:

<?php
printf("%0.20f", (2.1/0.7));    // 輸出:3.00000000000000044409
?>

 

經過上面對浮點數計算的探討,知道這是浮點數計算結果不完全精確造成的,因此使用 round() 函數處理一下即可:

 

復制代碼代碼如下:

<?php
echo ceil( round((2.1/0.7),1) );
?>

 

雖然 round() 函數是按照指定的精度進行四舍五入,但保留小數點后一位,對我們的取整結果是沒影響的。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文日韩电影网站| 亚洲国产小视频在线观看| 中文精品99久久国产香蕉| 日韩天堂在线视频| 色综合久久中文字幕综合网小说| 亚洲色图25p| 欧美视频裸体精品| 欧美日韩在线视频观看| 国产999精品久久久影片官网| 久久99热精品这里久久精品| 日韩欧美a级成人黄色| 国产日韩精品在线观看| 在线播放国产精品| 97国产真实伦对白精彩视频8| 九九视频这里只有精品| 久久99亚洲热视| 成人久久一区二区三区| 国产精品草莓在线免费观看| 亚洲国产精品专区久久| 一二美女精品欧洲| 国内精品久久久久影院 日本资源| 26uuu亚洲伊人春色| 日韩一区二区福利| 久久久久久网站| 久久久亚洲国产| 国产高清在线不卡| 国产精品嫩草影院久久久| 97色在线视频| 色偷偷噜噜噜亚洲男人| 97久久精品在线| 国产精品精品一区二区三区午夜版| 国产免费一区视频观看免费| 欧美黑人性生活视频| 久久精品欧美视频| 黄网动漫久久久| 国产精品久久久久久av下载红粉| 97视频国产在线| 久久久亚洲国产天美传媒修理工| 国产精品色午夜在线观看| 午夜精品一区二区三区在线| 国产精品成人播放| 免费91在线视频| 亚洲国产精品久久| 自拍偷拍亚洲在线| 亚洲精品720p| 黄色91在线观看| 好吊成人免视频| 国产亚洲人成a一在线v站| 国产精品视频公开费视频| 久久久在线视频| 国产精品国产自产拍高清av水多| 免费不卡在线观看av| 欧美极品少妇xxxxx| 中文在线不卡视频| 久久在线视频在线| 在线成人激情黄色| 欧美裸体xxxx极品少妇| 国产婷婷97碰碰久久人人蜜臀| 91精品国产91久久久久| 日韩精品在线看| 色妞在线综合亚洲欧美| 日韩在线视频免费观看高清中文| 国产丝袜精品第一页| 国产精品免费电影| 91久久在线视频| 国产国语videosex另类| 亚洲石原莉奈一区二区在线观看| 亚洲伦理中文字幕| 狠狠躁夜夜躁人人爽超碰91| 国产香蕉97碰碰久久人人| 中文字幕无线精品亚洲乱码一区| 97视频免费在线看| 国产在线不卡精品| 精品国内产的精品视频在线观看| 久久久在线观看| 国产综合香蕉五月婷在线| 国产精品男女猛烈高潮激情| 91亚洲va在线va天堂va国| 成人有码视频在线播放| 久久久日本电影| 久久久久久久一| 亚洲视频在线观看网站| 一区二区三区国产在线观看| 日韩美女视频在线观看| 一区二区三区 在线观看视| 日韩小视频在线观看| 欧美精品一区二区三区国产精品| 亚洲国产黄色片| 亚洲欧洲一区二区三区在线观看| 久久全球大尺度高清视频| 欧美精品一区三区| 亚洲国产精品久久久久秋霞不卡| 成人网欧美在线视频| 久久影视电视剧免费网站清宫辞电视| 国产成人久久久精品一区| 亚洲欧美中文字幕| 久久色免费在线视频| 亚洲男人7777| 亚洲国产精品字幕| 这里只有精品久久| 国产成人激情小视频| 一区二区成人av| 青草青草久热精品视频在线网站| 一区二区三区视频在线| 一区二区av在线| 日韩中文字幕视频在线观看| 免费成人高清视频| 亚洲成**性毛茸茸| 国产精品视频男人的天堂| 尤物精品国产第一福利三区| 亚洲黄色av女优在线观看| 中文字幕久久久av一区| 国产精品96久久久久久| 伊人久久五月天| 亚洲成人黄色在线| 欧美成人黑人xx视频免费观看| 日本精品免费一区二区三区| 亚洲欧美自拍一区| 日韩欧美在线视频| 亚洲女人初尝黑人巨大| 国产精品入口日韩视频大尺度| 高清欧美电影在线| www.久久草.com| 国产精品999| 欧美体内谢she精2性欧美| 亚洲视频在线观看视频| 国产精品久久9| 日韩精品久久久久久久玫瑰园| 欧美一级淫片丝袜脚交| 亚洲精品国产精品国自产在线| 色婷婷久久一区二区| 久久影视电视剧免费网站清宫辞电视| 日韩的一区二区| 成人一区二区电影| 亚洲一二在线观看| 国产欧美日韩免费看aⅴ视频| 国产日韩精品在线播放| 久久久久国产精品一区| 日本午夜在线亚洲.国产| 亚洲精选中文字幕| 成人午夜黄色影院| 欧美日韩第一视频| 国产免费亚洲高清| 日韩在线欧美在线| 4k岛国日韩精品**专区| 欧美国产极速在线| 国产a∨精品一区二区三区不卡| 91久久久久久久久久久久久| 亚洲精品日韩激情在线电影| 国产精品久久一区主播| 亚洲精品日韩丝袜精品| 亚洲影影院av| 国产日韩精品一区二区| 操人视频在线观看欧美| 国产日韩在线精品av| 亚洲精品456在线播放狼人| 欧美激情日韩图片| 国产精品久久久久久超碰| 91极品视频在线| 精品久久久精品| 亚洲乱亚洲乱妇无码| 久久精品视频在线观看| 在线视频日韩精品| 97精品一区二区视频在线观看|