【发布时间】:2018-11-30 07:17:02
【问题描述】:
我面临一个奇怪的问题,数组的总和是 1,但是当我将它检查到 IF 条件时它返回 false。
$array = array
(
0 => 0.237,
1 => 0.318,
2 => 0.215,
3 => 0.06,
4 => 0.069,
5 => 0.053,
6 => 0.048
);
if(array_sum($array) != 1){
echo "It's not one";
} else {
echo "It's one";
}
上面的代码返回 It's not one 而不是 It's one。
【问题讨论】:
-
因为浮点数学。
-
我需要如何解决这个问题?我检查了 array_sum($arrays),它显示 1。
-
取决于它需要有多准确。您可以使用
round()、ceil()、floor()或bcmath扩展名(以及更多),具体取决于您的要求。 -
我需要检查必须为 1 的数组值的总和,并且我的数组是动态的。
-
使用
if ((string)array_sum($array) != 1)