因为Java中的PI不是实际中完全的PI,java的PI是这样定义的public static final double PI = 3.14159265358979323846;

解决方案 »

  1.   

    sin(π) = 0 
    java中的Math.PI   比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值
    它不是π 值,只是它的近似值,所以 Math.sin(Math.PI)  不等于 0 
      

  2.   

    sin(π)  这个π 是数学中的π,Math中的PI 是近似值
      

  3.   

    我也知道,它只是个近似值。所以,sin和cos函数中,使用它时,如sin(Math.pi/2)结果就近似于真值1/2,其它函数调用都没问题。但是,sin(PI)时例外,输出结果并非接近于0,而是大于1的数,
      

  4.   

    是的,它只是个近似值。所以,sin和cos函数中,使用它时,如sin(Math.pi/2)结果就近似于真值1/2,其它函数调用都没问题。但是,sin(PI)时例外,输出结果并非接近于0,而是大于1的数哦,让我很是纳闷啊
      

  5.   

    我也知道,它只是个近似值。所以,sin和cos函数中,使用它时,如sin(Math.pi/2)结果就近似于真值1/2,其它函数调用都没问题。但是,sin(PI)时例外,输出结果并非接近于0,而是大于1的数,
    sin(Math.pi/2)结果就近似于真值1
      

  6.   

    java中PI 本来就是近似值,然后再近似计算,计算出来的值再近似为double
    为1 应该就这么出来了
      

  7.   

    java中PI 本来就是近似值,然后再近似计算,计算出来的值再近似为double
    为1 应该就这么出来了
    是的,这就是我的问题了,sin(PI/2)、sin(PI/6)或者其它情况时,都近似于真值。唯独,sin(pi)调用时,并非近似于0,而是大于1的数
      

  8.   

    java中PI 本来就是近似值,然后再近似计算,计算出来的值再近似为double
    为1 应该就这么出来了
    是的,这就是我的问题了,sin(PI/2)、sin(PI/6)或者其它情况时,都近似于真值。唯独,sin(pi)调用时,并非近似于0,而是大于1的数不是啊,答案不是1.2246467991473532E-16吗,这不是一个很小的数吗