Kee*_*ood 5 php floating-point trigonometry
我试过了
$x = cos(deg2rad($angle));
Run Code Online (Sandbox Code Playgroud)
但是当角度为90度而不是0时,它返回6.12323399574E-17.我读到这是一个浮点问题,但是有解决方法吗?
Aln*_*tak 10
6.1E-17 无论如何几乎为零[*].如果您需要将结果实际比较为零,则在浮点数学中,您应检查它是否在所需值的某个容差范围内,因为大多数数字无法正确表示.
$x = cos(deg2rad($angle));
$is_zero = (abs($x) < 1e-10);
Run Code Online (Sandbox Code Playgroud)
当然,严格地说,零实际上是一个可以在浮点中正确表示的数字.真正的问题是pi / 2.0不可能,因此您的cos功能输入不是"正确的".
[*]把它放在上下文中,取其比例为1 AU(从太阳到地球的平均距离),相当于0.0092 毫米,约为人类头发平均宽度的十分之一 ......
| 归档时间: |
|
| 查看次数: |
1067 次 |
| 最近记录: |