运行非常简单的java代码时出现此错误

时间:2015-07-13 06:21:52

标签: java

编译代码时出现此错误 “可能会失去精确度” 我做错了什么!?

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));
    }
}

3 个答案:

答案 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(...);