全部——我有一个应用程序,用户可以在其中输入数据,例如晚餐账单的成本、小费百分比和人数。然后,该应用程序会获取数字并输出总账单成本和每个人必须支付的金额。我快到了,但是当用户输入的数字不好用时,我会得到 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   回答