将 double 类型的数字相乘,输出结果需要保留两位小数
double creditCardPercentage = 0.03;
String renewalEventAmount = "2144.60";
double expectedRenewalAmount = 0;
expectedRenewalAmount = Double.parseDouble(renewalEventAmount) * creditCardPercentage;
expectedRenewalAmount 的输出是 64.338
,那么我们如何将上面的输出格式化为两位小数
预期:
64.33
最佳答案
您应该使用 BigDecimal
类,因为它具有浮点精度的内置处理:
BigDecimal creditCardPercentage = new BigDecimal(0.03);
String renewalEventAmountString = "2144.60";
BigDecimal renewalEventAmount = new BigDecimal(renewalEventAmountString);
BigDecimal expectedRenewalAmount = renewalEventAmount.multiply(creditCardPercentage);
expectedRenewalAmount = expectedRenewalAmount.setScale(2, BigDecimal.ROUND_HALF_DOWN);
System.out.println(expectedRenewalAmount); // prints 64.33
使用 BigDecimal 处理格式的优点之一是,它允许您将代码与业务逻辑分开,即从输出的 View 代码中四舍五入到小数点后两位结果给用户。
关于java - 乘以两位小数 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29406565/