有人可以向我解释为什么当我试图计算某些罪恶值时,我的罪函数没有返回正确的值...
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)
所有余弦值都正常工作
答案 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