Java double相乘取三位小数
时间: 2024-12-24 10:38:01 浏览: 17
在Java中,当你将两个`double`类型的数值相乘并需要保留三位小数时,可以使用`Math.round()`函数配合`DecimalFormat`来进行四舍五入。首先,计算出乘积,然后将其转换为`BigDecimal`类型,因为`double`精度有限可能会丢失小数位。然后利用`round`方法将结果四舍五入到最接近的整数,并再次转换回`double`,最后除以1000得到三位小数。
示例代码如下:
```java
import java.math.BigDecimal;
import java.text.DecimalFormat;
public class Main {
public static void main(String[] args) {
double a = 123.456;
double b = 789.012;
BigDecimal product = new BigDecimal(a * b);
int scale = 3; // 保留三位小数
BigDecimal roundedProduct = product.setScale(scale, RoundingMode.HALF_UP); // 四舍五入
double threeDecimalPlaces = roundedProduct.doubleValue() / Math.pow(10, scale);
System.out.printf("Result with three decimal places: %.3f\n", threeDecimalPlaces);
}
}
```
运行这段代码,你会看到结果是保留了三位小数的。如果直接乘法后的结果已经是三位小数,则无需额外处理。
阅读全文