true
true

再看下面這段代碼, 0.6+0.1+0.1+0.1+0.1 的相加結(jié)果與 1 進(jìn)行比較

<?php
$a = 0.6;
$b = 0.1;
$c = 0.1;
$d = 0.1;
$e = 0.1;

$total = $a + $b + $c + $d + $e;
var_dump($total);

if (1 == $total) {
 echo "true";
} else {
 echo "false";
}
echo "\n";

if (1.0 == $total) {
 echo "true";
} else {
 echo "false";
}

?>

打印結(jié)果是:

float(1)
false
false

為什么這兩段代碼結(jié)果不一樣?把兩段代碼里面的 $total 分別以精度20位的形式打印出來 printf(“%.20f\n”, $total); ,結(jié)果如下:

1.00000000000000000000
0.99999999999999988898

出現(xiàn)這個(gè)問題是因?yàn)楦↑c(diǎn)數(shù)計(jì)算涉及精度。

關(guān)于php里面的浮點(diǎn)數(shù), 官方手冊上有相關(guān)解釋

看官方手冊里面關(guān)于浮點(diǎn)數(shù)的提示,里面提到永遠(yuǎn)不要比較兩個(gè)浮點(diǎn)數(shù)是否相等

那么有什么辦法可以比較兩個(gè)浮點(diǎn)數(shù)是否相等呢?

方法一、

看如下代碼示例

<?php

$a = 0.6;
$b = 0.1;
$c = 0.1;
$d = 0.1;
$e = 0.1;
$epsilon = 0.00001;

$total = $a + $b + $c + $d + $e;

if(abs($total-1) < $epsilon) {
 echo "true";
} else {
 echo "false";
}
echo "\n";

if(abs($total-1.0) < $epsilon) {
 echo "true";
} else {
 echo "false";
}

?>

結(jié)果輸出為:

true
true

方法二、

<?php

$a = 0.6;
$b = 0.1;
$c = 0.1;
$d = 0.1;
$e = 0.1;

$total = $a + $b + $c + $d + $e;

if(1.0 == round($total, 5)) {
 echo "true";
} else {
 echo "false";
}
?>

結(jié)果輸出為:

true

贊(0)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享網(wǎng)絡(luò)內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。郵箱:3140448839@qq.com。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明出處:三五互聯(lián)知識庫 » php如何比較浮點(diǎn)數(shù)是否相等

登錄

找回密碼

注冊

主站蜘蛛池模板: 国产91午夜福利精品| 日本精品中文字幕在线不卡| 午夜福利在线观看6080| 国产精品第一二三区久久| 97久久精品无码一区二区天美| 国产极品美女高潮抽搐免费网站| 欧美情侣性视频| 亚洲午夜无码久久久久小说| 激情综合色五月丁香六月亚洲| 99久久免费精品国产色| 女人18片毛片60分钟| 国产日韩一区二区天美麻豆| 安塞县| 国产精品久久久久影院色| 日本va欧美va精品发布| 人妻少妇精品视频二区| 无码人妻精品一区二区三区66| 国产成人99亚洲综合精品| 国产午夜A理论毛片| 开心久久综合激情五月天| 中文字幕国产精品自拍 | 国产精品美女一区二三区| 无遮高潮国产免费观看| 55夜色66夜色国产精品视频| 尹人香蕉久久99天天拍| 国产电影一区二区三区| 色综合久久夜色精品国产| 国模少妇无码一区二区三区| 国产最大成人亚洲精品| 少妇的丰满3中文字幕| 日韩精品一区二区在线视| 德钦县| 日本黄韩国色三级三级三| 亚洲成人高清av在线| 日韩精品人妻中文字幕| 国产精品普通话国语对白露脸| 亚洲AV成人片不卡无码| 国产AV无码专区亚洲AWWW| 无码成人午夜在线观看| 免费国产va在线观看| 人妻18毛片A级毛片免费看|