>我试图验证第一个浮点数是否可以完全除以第二个浮点数,我得到了这样的东西:
$first = 10.20; // or 5.10, 7.14, 9.18
$second = 1.02;
var_dump(fmod($first, $second));
// output is showing
float(1.02)
但是,如果我尝试将这些数字除以 1.02,fmod()
效果很好。我不明白fmod()
为什么会有这样的行为?对这个问题的任何回答都将帮助我理解这一事实。
$first = 4.08; // or 2.04, 3.06, 6.12, 8.16
$second = 1.02;
var_dump(fmod($first, $second));
// output is showing
float(0)
这是因为fmod()
函数只返回除法的浮点模数。
与第一种情况一样,余数是函数返回的浮点值。
但是在下面的示例中,如果我们进行除法
$first = 4.08; // or 2.04, 3.06, 6.12, 8.16
$second = 1.02;
我们得到整数类型的余数,即0.041616。这里的问题是函数显示的值仅限于第一个小数点(在这种情况下它是0.0
(。但是,如果我们必须找到两个数字的模
<?php
$x = 5.7;
$y = 1.3;
$r = fmod($x, $y);
?>
我们将得到值为float(0.5(。
因为这里小数点后的第一个数字不是0。
因此,在您的情况下,它由函数float(0)
显示。
有关更多详细信息,您可以访问 点击这里