1

全部——我有一个应用程序,用户可以在其中输入数据,例如晚餐账单的成本、小费百分比和人数。然后,该应用程序会获取数字并输出总账单成本和每个人必须支付的金额。我快到了,但是当用户输入的数字不好用时,我会得到 23.576 美元或 34.999999999 美元的输出。我的问题是如何使应用程序将两个输出答案舍入到小数点后两位(55.349 美元变为 55.35 美元)?提前致谢!

4

2 回答 2

3
String roundTwoDecimals(double d) {
        DecimalFormat formatter = new DecimalFormat("#.##");
        return formatter.format(d);
}
于 2012-06-20T23:58:03.607 回答
1

你可以Math.round这样使用:

    double data = 55.349; // Your data value of whatever

    int decimalPlaces = 2;
    double roundBase = Math.pow(10, decimalPlaces);
    data = (double)(Math.round(data * roundBase)) / roundBase;
    System.out.println(data); // Prints "55.35"

但是请记住:在金融应用程序中,您不应该使用 double。由于您的似乎是小规模的,您应该没问题,但是,BigDecimal更容易用于这些目的。

如何使用 BigDecimal: clicky

于 2012-06-20T23:56:57.383 回答