编译代码时出现此错误 “可能会失去精确度” 我做错了什么!?
import javax.swing.*;
import java.lang.*;
public class Assignment2
{
public static void main (String [] args)
{
int number=Double.parseDouble(JOptionPane.showInputDialog("Enter a number"));
System.out.println(Math.sqrt(number));
}
}
答案 0 :(得分:2)
你正在为一个int值分配一个double值,这就是原因(因为double可以存储更大的值并且有小数部分可能会导致数据丢失)......我认为你需要分配返回的值Double.parseDouble()
为双变量
import javax.swing.*;
import java.lang.*;
public class Assignment2
{
public static void main(String[] args)
{
double number = Double.parseDouble(JOptionPane
.showInputDialog("Enter a number"));
System.out.println(Math.sqrt(number));
}
}
答案 1 :(得分:1)
问题在这里:
int number = Double.parseDouble(JOptionPane.showInputDialog("Enter a number"));
您应该将数字类型更改为double
以防止精度损失
答案 2 :(得分:0)
您可以将number
声明为double
,就像那些答案一样,但如果您真的希望number
成为int
,那么请转换返回值:
int number = (int) Double.parseDouble(...);