gpt4 book ai didi

PHP 分部浮点值问题

转载 作者:搜寻专家 更新时间:2023-10-31 20:39:36 24 4
gpt4 key购买 nike

当我尝试获取余数时,它给出了无效值。我试图保留两个十进制值,然后我得到了

3.4694469519536E-18

我的值(value)观是

 $x=0.1; $y=0.005;

我尝试了以下方法:

echo $ed = fmod(0.1,0.005);  OutPut:3.4694469519536E-18
echo $ed = ((floatval(0.1)) % (floatval(0.005)));

但是得到

Warning: Division by zero

但现实是 0.1 将在 20 次后除以 0.005。即 0.1/0.005 = 20

当我使用 10%1 = 0 时,相同的函数返回正确的值。

我怎样才能得到准确的余数。 (我在 JQuery 中没有遇到同样的问题 :) )

检查解决方法:PHP Division Float Value WorkAround

最佳答案

% 运算符仅适用于整数,因此它将您的 float 截断为整数并尝试执行 0 % 0,这会导致除以零。

您唯一可以使用的是fmod()。您在这里面临的问题是典型的浮点不精确(该值“几乎”为零)。我会考虑忽略小于 10^-15 的值。在 PHP 中没有真正的替代品。

您可以尝试进行真正的除法,然后,运气好的话,不精确的痕迹就会消失。 (比如 round(0.1/0.005) === 0.1/0.005)

关于PHP 分部浮点值问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26038538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com