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 楼答案
如果你在做货币计算之类的事情,精确地表示小数点后的小数很重要,那么最好不要使用双精度。将数字的原始字符串表示形式直接传递给BigDecimal构造函数,然后用BigDecimal进行算术运算
例如,
new BigDecimal("0.1")
的值为0.1,但new BigDecimal(0.1)
的值稍有不同,为0.10000000000000055115123125782702118158340451015625,这是由于将文本转换为双精度时的舍入