为什么Math.cbrt(a)给出的结果与Math.pow(a, (1/3))不同
public class HelloWorld{
public static void main(String []args){
int a=8;
System.out.println(Math.cbrt(a));
System.out.println(Math.pow(a,(1/3)));
}
}解决方案
2.0 1.0
为什么会有差异呢?是我的数学错误,还是语法错误,或者与pow有关?
发布于 2014-06-15 14:09:52
System.out.println(Math.pow(a,(1.0/3.0)));由于整数运算,1/3将为0,因此您需要转换为double,或者像上面所示那样简单地使用double,以获得所需的结果。
发布于 2014-06-15 14:13:56
在Java中1/3 = 0,因为整型除以整型。如果你使用1/3.0,你在Math.pow中的结果会很好。
发布于 2014-06-15 14:14:00
表达式1/3的计算结果为整数除法,结果为0。然后,pow被调用为pow(8, 0),它正确地返回1。请尝试编写pow(a, (1.0 / 3.0))。
https://stackoverflow.com/questions/24227017
复制相似问题