如何乘以两个双打

时间:2017-03-28 02:16:37

标签: java android double multiplying

我正在研究一个货币转换器android应用程序,我试图将double与另一个double值相乘,但在乘以后我得不到正确的值。我也试过BigDecimal但仍然没有得到正确的金额。什么是倍增双打的最佳方式?

second_amount = Double.parseDouble(second.getText().toString());
                first_amount = Double.parseDouble(first.getText().toString());
                result = first_amount * second_amount;
                second.setText("" + df.format(result));

使用BigDecimal后

                second_amount = Double.parseDouble();
                bdf = new BigDecimal(second.getText().toString());
                //first_amount = Double.parseDouble(first.getText().toString());
                bds = new BigDecimal(second.getText().toString());
                BigDecimal bdr = bdf.multiply(bds);
                //result = first_amount * second_amount;
                second.setText("" + bdr);

1 个答案:

答案 0 :(得分:3)

如果你正在做类似货币计算的事情,那么短小数部分的确切表示很重要,最好不要涉及双重。将数字的原始字符串表示形式直接传递给BigDecimal构造函数,并在BigDecimal中进行算术运算。

例如,new BigDecimal("0.1")的值为0.1,但new BigDecimal(0.1)的值略有不同0.1000000000000000055511151231257827021181583404541015625,原因是将文字转换为double的四舍五入。