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