Math.pow(64,1/3)等价于 Math.pow(64,0)所以结果是1.0
在程序中 1/3并不代表三分之一,因为这里是两个int类型在做除法,结果也是int类型,会自动取整(向下取0了), 所以是0,就可以说明为什么结果是1。执行代码如下
System.out.println(1/3)
运行结果
当然如果使用Math.pow(64,1.0/3.0)结果也不是4,代码如下
System.out.println(Math.pow(64,1.0/3.0))
结果如下
这里1.0/3.0近似等于0.3333333333所以,最后结果为上图所示。
拓展知识
1.0做除数抛运行时异常;两整数商会做取整运算,Float或Double与一个整数做除法运算,则商位Float或者Double类型
2.0可以做除数,得到的是一个分正负的无穷大;当两个数的绝对值均为0.0时候,商等于NaN。当0.0/x,x不等0.0时候