我有以下代码,当我将整数乘以时,但当我尝试乘以十进制数并将答案显示为十进制数时,我收到错误
public void actionPerformed(ActionEvent e) {
int num1=Integer.parseInt(textArea_price.getText());
int num2=Integer.parseInt(textArea_quantity.getText());
int result = num1*num2;
textField_Name.setText(Integer.toString(result));
有关我可以更改或添加以使此代码与十进制数一起使用的任何建议,我们表示赞赏。
答案 0 :(得分:2)
BigDecimal可能就是你想要的。
textField_Name.setText(
new BigDecimal(textArea_price.getText())
.multiply(new BigDecimal(textArea_quantity.getText())).toString());
答案 1 :(得分:1)
将int/Integer
更改为double/Double
。
请注意,double
不精确(例如,1.2 * 9
在10.799999999
时为10.8
提供{{1}}。如果需要准确性,请考虑使用BigDecimal
。
答案 2 :(得分:0)
如果您希望文本字段中包含实数,则使用double而不是int。
double num1 = Double.parseDouble(textArea_price.getText());
答案 3 :(得分:0)
使用Double.parseDouble()
代替Integer.parseInt()
。并使用double
类型的变量:
double num1 = Double.parseDouble(textArea.getText());
答案 4 :(得分:0)
我的猜测是你使用术语“十进制数”来(错误地)引用包含“小数点”的数字。这些数字不是整数,也不能被Integer.toString解析。它们需要作为浮点(float或double)或BigDecimal处理。
答案 5 :(得分:0)
float a = Float.parseFloat("121.12");
float b = Float.parseFloat("0.9");
float res = a*b;
String str = Float.toString(res);