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

php如何比較兩個(gè)浮點(diǎn)數(shù)是否相等詳解

 更新時(shí)間:2019年02月12日 10:17:23   作者:nemo  
這篇文章主要給大家介紹了關(guān)于php如何比較兩個(gè)浮點(diǎn)數(shù)是否相等的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

前言

本文主要給大家介紹了關(guān)于利用php如何比較浮點(diǎn)數(shù)是否相等的相關(guān)內(nèi)容,下面話不多說了,來一起看看詳細(xì)的介紹吧

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

<?php
$a = 0.9;
$b = 0.1;
$total = $a + $b;
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)
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

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

最新評(píng)論

东乡| 潮安县| 东山县| 永年县| 新余市| 长宁县| 吴堡县| 蛟河市| 邢台县| 肥城市| 芷江| 建水县| 广州市| 龙江县| 卓尼县| 内黄县| 宁武县| 平原县| 蒙山县| 亳州市| 保靖县| 洛川县| 喀喇| 根河市| 阳西县| 乐山市| 简阳市| 桂东县| 花垣县| 泉州市| 卫辉市| 玉田县| 房产| 汾西县| 大方县| 雅安市| 拜泉县| 潞城市| 盐源县| 望都县| 樟树市|