有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何乘法两倍

我正在开发一个货币转换器安卓应用程序,在该应用程序中,我试图将一个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) 个答案

  1. # 1 楼答案

    如果你在做货币计算之类的事情,精确地表示小数点后的小数很重要,那么最好不要使用双精度。将数字的原始字符串表示形式直接传递给BigDecimal构造函数,然后用BigDecimal进行算术运算

    例如,new BigDecimal("0.1")的值为0.1,但new BigDecimal(0.1)的值稍有不同,为0.10000000000000055115123125782702118158340451015625,这是由于将文本转换为双精度时的舍入