罪的功能没有给出正确答案

时间:2012-03-20 00:55:02

标签: php sin

有人可以向我解释为什么当我试图计算某些罪恶值时,我的罪函数没有返回正确的值...

echo sin(2 * pi()); //returns -2.44929359829E-16 (should be 1)
echo sin(1.9 * pi()); //returns -0.309016994375 (correct)
echo sin(1 * pi()); //returns 1.22464679915E-16 (should be 0)
echo sin(1.00001 * pi()); //returns -3.14159265309E-5 (correct)
echo sin(1.2 * pi()); //returns -0.587785252292 (correct)
echo sin(0.1 * pi()); //returns 0.309016994375 (correct)
echo sin(0 * pi()); //returns 0 (correct)
echo sin(1.5 * pi()); //returns -1 (correct)

所有余弦值都正常工作

2 个答案:

答案 0 :(得分:5)

  

echo sin(2 * pi()); //返回-2.44929359829E-16(应为1)

应为0.它足够接近双精度浮点数。

  

echo sin(1 * pi()); //返回1.22464679915E-16(应为0)

以双精度关闭足够的浮点数。

对我来说很好。

答案 1 :(得分:1)

这是因为pi()返回值3.1415926535898,这是一个估计值。

要获得更准确的pi值,请尝试使用M_PI,其值为3.14159265358979323846

有关php中pi的更多信息,请阅读此页面:http://php.net/manual/en/function.pi.php