在java中乘以十进制数

时间:2012-03-11 14:41:07

标签: java integer decimal

我有以下代码,当我将整数乘以时,但当我尝试乘以十进制数并将答案显示为十进制数时,我收到错误

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

有关我可以更改或添加以使此代码与十进制数一起使用的任何建议,我们表示赞赏。

6 个答案:

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