Java - 我的程序在应该向上舍入时向下舍入



我正在构建一个程序来计算餐厅账单的总成本。我的程序将 18.135 美元四舍五入到 18.13 美元。这是我用来将其四舍五入到小数点后两位的代码:

tip = Math.round((charge * TIP_PERCENTAGE) * 100) / 100d;

所有变量都是双精度值,电荷等于 100.75,TIP_PERCENTAGE等于 0.18。

我尝试了几件事,但我没有任何运气。我希望程序将 18.135 美元四舍五入到 18.14 美元。

试试这个

private static double round(double value, int places) {
if (places < 0) throw new IllegalArgumentException();
BigDecimal bd = new BigDecimal(Double.toString(value));
bd = bd.setScale(places, RoundingMode.HALF_UP);
return bd.doubleValue();
}
...
tip =(charge * TIP_PERCENTAGE) ;
tip = round(tip,2);

最新更新