【问题标题】:sum inside if statement in PHP [duplicate]在PHP中的if语句中求和[重复]
【发布时间】:2016-09-28 01:02:38
【问题描述】:

有人可以解释为什么这个代码:

$a = 0.1;
$b = 0.2;

if ($a + $b == 0.3) {
    echo "OK";
} else {
    echo "KO";
}

返回KO

我不明白为什么总和结果与浮点数 0.3 不同,考虑到:

var_dump($a + $b);

返回:float(0.3)

我唯一的假设是仅在 $b 和 0.3 之间进行了比较,但仍然存在疑问,因为在这种情况下也是如此:

if ( ($a + $b) == 0.3) {

我得到 KO..

【问题讨论】:

标签: php if-statement


【解决方案1】:

这是一个浮点数,这个数字的精度不是固定的,如果你固定了精度就可以了。

Check Online

$a = 0.1;
$b = 0.2;
$c = sprintf('%.1f', ($a + $b));
if ($c  == 0.3) {
    echo "OK";
} else {
    echo "KO";
}

结果现在是OK

【讨论】:

    【解决方案2】:

    使用函数round($a+b, 1);我的代码中有这个问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-11
      • 2012-01-12
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      • 2015-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多