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

问题描述 投票:0回答:1

我正在尝试验证是否可以将第一个浮点数除以第二个浮点数,然后得到如下所示:

$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)
php modulus fmod
1个回答
1
投票

这是因为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)显示。

有关更多详细信息,您可以访问Click Here

© www.soinside.com 2019 - 2024. All rights reserved.