如何让java除法时产生小数点
How to get java to produce decimal points while dividing
我正在制作一个基本的计算器,您可以在其中进行加、乘、除和减,因为我正在尝试查看它是否有效,我注意到它不是 5 除以等于 1.25,而是只显示 1。
这是我用来处理数学问题的代码:
if (box.getSelectedItem().equals(divide)){
JOptionPane.showMessageDialog(null, Integer.parseInt(first.getText()) / Integer.parseInt(second.getText()), "Answer", -1);
main(args);
}
有显示小数点的代码吗?
整数除法会给你整数。尝试使用 Double 或 BigDecimal 数据类型。
你需要做演员
(double)parseInt(first.getText()) / (double)parseInt(second.getText())
Int/Int 会给你一个整数。因此,您需要将其转换为 Double 以获得十进制结果。
编辑:
如果你不想在结果为整数时显示小数,那么你需要这样检查:
Double res = (double)parseInt(first.getText()) / (double)parseInt(second.getText())
Integer x;
if(res % 1 == 0)
{
x = (int)res
}
由于您使用的是 Integer,所以它正在发生。
使用 Double 保留小数。
在你的情况下,使用
Double.parseDouble(first.getText()) / Double.parseDouble(second.getText())
我正在制作一个基本的计算器,您可以在其中进行加、乘、除和减,因为我正在尝试查看它是否有效,我注意到它不是 5 除以等于 1.25,而是只显示 1。
这是我用来处理数学问题的代码:
if (box.getSelectedItem().equals(divide)){
JOptionPane.showMessageDialog(null, Integer.parseInt(first.getText()) / Integer.parseInt(second.getText()), "Answer", -1);
main(args);
}
有显示小数点的代码吗?
整数除法会给你整数。尝试使用 Double 或 BigDecimal 数据类型。
你需要做演员
(double)parseInt(first.getText()) / (double)parseInt(second.getText())
Int/Int 会给你一个整数。因此,您需要将其转换为 Double 以获得十进制结果。
编辑:
如果你不想在结果为整数时显示小数,那么你需要这样检查:
Double res = (double)parseInt(first.getText()) / (double)parseInt(second.getText())
Integer x;
if(res % 1 == 0)
{
x = (int)res
}
由于您使用的是 Integer,所以它正在发生。 使用 Double 保留小数。 在你的情况下,使用
Double.parseDouble(first.getText()) / Double.parseDouble(second.getText())