Java 计算sin30的值
我找不到sin 30的正确值Java 计算sin30的值,java,Java,我找不到sin 30的正确值 double degrees = 30.0; double radians = Math.toRadians(degrees); System.out.println(Math.sin(radians)); 它生成.49999999,但与计算器匹配的精确值为.5 请帮助我……Math.sin(…)进行插值以获得一个好的值,因此您不能期望得到精确的值。此外,在插值sin值时,浮点/双精度运算的问题是另一个问题。我不相信你用Math.ceil得到了这个结果。浮点
double degrees = 30.0;
double radians = Math.toRadians(degrees);
System.out.println(Math.sin(radians));
它生成.49999999,但与计算器匹配的精确值为.5
请帮助我……
Math.sin(…)
进行插值以获得一个好的值,因此您不能期望得到精确的值。此外,在插值sin值时,浮点/双精度运算的问题是另一个问题。我不相信你用Math.ceil
得到了这个结果。浮点数运算肯定会出现不准确的问题。而Math.ceil
应该给您一个向上舍入到最接近整数的双精度值。看起来您应该得到1.0
作为输出,而不是0.5
@phoeagon。不,Math.ceil
给出的是一个双精度值,而不是整数。@RohitJain是0.5计算器也是这样做的,但为什么输出是0.5呢?是question@AlexWien:据我所知,计算器中近似值的算术数字比显示的数字多,并且在显示之前是四舍五入的。另外,插值的不同算法可能是第一部分(更多数字)正常的原因,其他算法肯定不是原因