Java Math.pow无法正常工作

参见英文答案 > Integer division: How do you produce a double?                                    10个

System.out.println(Math.pow(16,0.5)); is 4.0

System.out.println(Math.pow(16,(1/2)));  is 1.0

为什么???我需要使用分数!

解决方法

1/2是0,由于整数除法,因此Math.pow(16,(1/2)是Math.pow(16,0),即1.0.

为了使用浮点除法评估1/2,您必须将1或2转换为double:

System.out.println(Math.pow(16,((double)1/2)));

或者首先使用双文字

System.out.println(Math.pow(16,(1.0/2)));

要么

System.out.println(Math.pow(16,(1/2.0)));

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...