我正在制作一个基本的计算器,你可以加上,时间,分数和减去,因为我正在试验看它是否有效我注意到,而不是5除以等于1.25它只显示1。
这是我用来处理数学问题的代码:
if (box.getSelectedItem().equals(divide)){
JOptionPane.showMessageDialog(null, Integer.parseInt(first.getText()) / Integer.parseInt(second.getText()), "Answer", -1);
main(args);
}
是否还有显示小数点的代码?
答案 0 :(得分:2)
因为你正在使用Integer,所以它正在发生。 使用Double保留小数。 在您的情况下,请使用
Double.parseDouble(first.getText()) / Double.parseDouble(second.getText())
答案 1 :(得分:1)
整数除法会给你整数。尝试使用Double或BigDecimal数据类型。
答案 2 :(得分:1)
你需要进行投射
(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
}