使用 fmod() 在 2 个浮点数之间查找提醒

Find reminder between 2 floating numbers using fmod()

我试图验证第一个浮点数是否可以完全除以第二个浮点数,我得到了这样的结果:

$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()有效 nicely.I 不明白为什么 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()函数只returns除法的浮点数取模

与第一种情况一样,余数是函数返回的浮点值。

但在下面的例子中,如果我们将除法设为

$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)

更多详情请访问Click Here