我想比较PHP中的两个浮点,因为内部比较容易出错,我使用了GMP库,但它给了我一个简单的比较错误。
if (gmp_cmp(0.2, 0.1) > 0) echo "First number is bigger";
错误为“gmp_cmp():无法将变量转换为gmp-类型错误”
最佳答案
如果要使用gmp,请尝试以下操作:
a = "0.2";
b = "0.1";
a_s = explode(".", $a); // split on decimal point
b_s = explode(".", $b);
if (gmp_cmp(a_s[0], b_s[0]) > 0 ||
(gmp_cmp(a_s[0], b_s[0]) == 0 && gmp_cmp(a_s[1], b_s[1]) > 0))
echo "First number is bigger";
这将在小数点上拆分A和B。如果a大于b(忽略小数点),则第一个数字更大。如果a和b是相同的(忽略小数),那么我们只比较小数部分,以确定a是否大于b。
希望能帮上忙