0

我有一个 Double 值Double val = 49.569632

我怎样才能汇总val得到49.57

4

2 回答 2

5

您可以使用DecimalFormat.

double d = 4.569632;
DecimalFormat df = new DecimalFormat("#.##");
System.out.print(df.format(d));

或者,您可以按照 Luiggi Mendoza 的建议使用此答案中提到的以下方法。

public static double round(double value, int places) {
    if (places < 0) throw new IllegalArgumentException();

    BigDecimal bd = new BigDecimal(value);
    bd = bd.setScale(places, BigDecimal.ROUND_HALF_UP);
    return bd.doubleValue();
}
于 2013-09-12T06:32:41.160 回答
1

一种简单的舍入方法是在打印时

double val = 49.569632; // this should be a primitive, not an object
System.out.printf("%.2f%n", val);

或者你可以先四舍五入

double rounded = Math.round(val * 1e2) / 1e2;
System.out.println(rounded);

恕我直言,如果您知道自己在做什么,则BigDecimal使用比使用更慢,编写更复杂并且容易出错。double我知道许多开发人员更喜欢使用库而不是自己编写代码。;)

于 2013-09-12T07:07:03.310 回答