orel-22 Asked:2022-04-09 21:57:44 +0000 UTC2022-04-09 21:57:44 +0000 UTC 2022-04-09 21:57:44 +0000 UTC 如何比较两个浮点数? 772 我需要按类型比较 if ($a + $b < $c) { /*true*/ } else { /*false*/ } 但由于所有三个变量都是带两位小数的浮点数,所以我进行如下比较: if ($a + $b - $c < -0.001) { /*true*/ } else { /*false*/ } 我做对了吗?我在这里看到了一个检查相等性的示例:https ://www.php.net/manual/ru/language.types.float.php ,但我没有找到更多检查示例。 php 1 个回答 Voted Best Answer user467825 2022-05-23T17:40:53Z2022-05-23T17:40:53Z 如果你的变量真的,根据问题的条件,精度不超过小数点后两位,那么一切正常,正如他们所说из коробки,至少在php v7.4.10. 所以我认为在你的版本中进行比较是不必要的。 <?php $a = 0.11; $b = 0.12; $c = 0.24; echo '$a = '.$a."\n"; echo '$b = '.$b."\n"; echo '$c = '.$c."\n"; echo '1) $a + $b < $c = '; if ( $a + $b < $c ) { echo "true\n"; } else { echo "false\n"; } echo '2) $a + $b < $c = '; if ( floatval($a) + floatval($b) < floatval($c) ) { echo "true\n"; } else { echo "false\n"; } 结果 $a = 0.11 $b = 0.12 $c = 0.24 1) $a + $b < $c = true 2) $a + $b < $c = true
如果你的变量真的,根据问题的条件,精度不超过小数点后两位,那么一切正常,正如他们所说
из коробки,至少在php v7.4.10. 所以我认为在你的版本中进行比较是不必要的。结果