数学问题
我想求一个数的sin值,但是不知道为什么不正确class TestPI
{
public static void main(String args[])
{
System.out.println(Math.sin(2*Math.PI));
}
}
答案是 -2.44929.......E -16 为什么不是0呢?
搜索更多相关的解决方案:
数学
----------------解决方案--------------------------------------------------------
确实不知道是怎么回事!
----------------解决方案--------------------------------------------------------
各位大侠,尽力帮帮忙想一想吧
----------------解决方案--------------------------------------------------------
Math.PI/2好似正确.
----------------解决方案--------------------------------------------------------
这个,应该是误差。
计算机里面的浮点数(double,float之类)是不可能完全精确表示的,存在一些小误差也是正常的。
----------------解决方案--------------------------------------------------------
Math.PI是接近园的周长和直径之比的 ,并不是确定的,另这有一定的误差,
----------------解决方案--------------------------------------------------------
大概就是这个原因了.
----------------解决方案--------------------------------------------------------
但是呢,如果是2*Math.PI的话答案却是正确的
class TestPI
{
public static void main(String args[])
{
System.out.println(2*Math.PI);
}
}
那样可能问题出在Math.sin()的函数那里了,就算是误差的话也不会多了-2.44929.......这么夸张~~~???太概也要接近0吧~~
----------------解决方案--------------------------------------------------------
这个数是很接近0
----------------解决方案--------------------------------------------------------
后面不是有个10 的负16次方么;
误差也应该是Math.PI 引入的,PI是double 类型的,而不是Math.sin()造成的.
我觉得.
----------------解决方案--------------------------------------------------------