可能会失去精确度

San*_*dra 4 java

我试图在java中运行此代码并获得以下错误,需要int found double.

public class UseMath{
public static void main(String[]args){
  int x = Math.pow (2,4);
System.out.println ("2 to the power of 4 is" + x);

 }
}
Run Code Online (Sandbox Code Playgroud)

Bal*_*des 13

如果你看一下文档,它说,Math.pow()预期两个doubles,并返回一个double.当你通过整数这个功能,就意味着没有坏处,因为铸造(转换)的int,以double表示没有损失.但是,当您将值赋给a时int,意味着它可能会失去精度.

只需这样做:

int x = (int)Math.pow (2,4);
Run Code Online (Sandbox Code Playgroud)

要么

double x = Math.pow (2,4);
Run Code Online (Sandbox Code Playgroud)