java中的十进制数乘法

java中的十进制数乘法,java,integer,decimal,Java,Integer,Decimal,我有下面的代码,当我将整数相乘时可以使用,但是当我尝试将十进制数相乘并将答案显示为十进制数时,我得到了一个错误 public void actionPerformed(ActionEvent e) { int num1=Integer.parseInt(textArea_price.getText()); int num2=Integer.parseInt(textArea_quantity.getText()); int resu

我有下面的代码,当我将整数相乘时可以使用,但是当我尝试将十进制数相乘并将答案显示为十进制数时,我得到了一个错误

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

任何关于我可以更改或添加哪些内容以使此代码与十进制数一起工作的建议都将不胜感激

如果文本字段中需要实数,则使用double而不是int

   double num1 = Double.parseDouble(textArea_price.getText());

如果在文本字段中需要实数,请使用double而不是int

   double num1 = Double.parseDouble(textArea_price.getText());

int/Integer
更改为
double/double


请注意,
double
是不精确的(例如
1.2*9
给出了
10.79999999
,而它应该是
10.8
)。如果需要正确性,请考虑使用。

< P>更改<代码> INT/INTING > <代码>双/双 < < /P>
请注意,
double
是不精确的(例如
1.2*9
给出了
10.79999999
,而它应该是
10.8
)。如果需要正确性,请考虑使用。

使用<代码>双PARSEMODLE()/>代码>而不是<代码>整数.PARSETIN()。并使用

double
变量类型:


double num1=double.parseDouble(textArea.getText())

使用
Double.parseDouble()
而不是
Integer.parseInt()
。并使用
double
变量类型:


double num1=double.parseDouble(textArea.getText())

BigDecimal可能是您想要的

 textField_Name.setText(
       new BigDecimal(textArea_price.getText())
       .multiply(new BigDecimal(textArea_quantity.getText())).toString());

BigDecimal可能是你想要的

 textField_Name.setText(
       new BigDecimal(textArea_price.getText())
       .multiply(new BigDecimal(textArea_quantity.getText())).toString());


我猜你用“十进制数”这个词(错误地)指的是包含“小数点”的数字。这些数字不是整数,不能由Integer.toString解析。它们需要作为浮点(浮点或双精度)或BigDecimal处理。

我猜您使用术语“十进制数”来(错误地)指包含“小数点”的数字。这些数字不是整数,不能由Integer.toString解析。它们需要作为浮点(浮点或双精度)或BigDecimal进行处理。

请说明您看到的错误以及在哪一行上出现的错误。(以及“整数”和“十进制数”是什么意思?)您知道,parseInt()只能解析int,对吗?我收到的错误消息是14:44.56 78[dbg]CShellExt::线程“AWT-EventQueue-0”java.lang.NumberFormatException中的CShellException:对于输入字符串:“12.34”@HotLicks他可能想要解析浮点数..请说明您看到的错误以及在哪一行上。(您所说的“整数”与“十进制数”是什么意思?)您知道,parseInt()只能解析int的,对吗?我收到的错误消息是线程“AWT-EventQueue-0”java.lang.NumberFormatException中的14:44.56 78[dbg]CShellExt::CShellException:对于输入字符串:“12.34”@HotLicks他可能想要解析浮点数..我猜他会想要BigDecimal,因为他在处理金钱。我猜他会想要BigDecimal,因为他是和钱打交道的。我试着用你们这里的东西,但它强调了“价值”部分,没有任何推荐的假设。你知道为什么会这样吗?@FatmaTurk:注意拼写:valueOf()@FatmaTurk如果你在
v
之后使用代码补全,它应该建议
valueOf
@PeterLawrey是的,它确实给了我建议,但是当我有剩余的代码(完成后)时,我会得到这个错误消息valueOf(long)在类型中,BigDecimal不适用于参数(字符串)对不起,它必须是
新的BigDecimal(字符串)
我试图使用您在这里的内容,但它在“valueof”部分下划线,没有任何推荐的假设。你知道为什么会这样吗?@FatmaTurk:注意拼写:valueOf()@FatmaTurk如果你在
v
之后使用代码补全,它应该建议
valueOf
@PeterLawrey是的,它确实给了我建议,但是当我有剩余的代码(完成后)时,我会得到这个错误消息valueOf(long)在类型中,BigDecimal不适用于参数(字符串)。对不起,它必须是
新的BigDecimal(字符串)
float a = Float.parseFloat("121.12");
float b = Float.parseFloat("0.9");
float res = a*b;
String str = Float.toString(res);