四舍五入到小数点后 2 位显示“#.00”而不是“#.0”
Round a double to 2 decimal places displaying "#.00" instead of "#.0"
我的 Android 应用程序(Java 代码)正在显示 15.0
,我需要显示的格式是 15.00
。我的变量是 double
。我怎样才能做到这一点?我试过的是 Jonik 在 Round a double to 2 decimal places:
的回答中的以下代码
public static double round(double value, int places) {
if (places < 0) throw new IllegalArgumentException();
BigDecimal bd = BigDecimal.valueOf(value);
bd = bd.setScale(places, RoundingMode.HALF_UP);
return bd.doubleValue();
}
然后我用这个:
double myValue = 15.0;
round(myValue, 2);
System.out.println(myValue);
我想看到 15.00
打印出来。但是,我看到的是 15.0
而这不是我想要的。有什么想法可以实现我的需要吗?谢谢。
我认为您正在寻找 NumberFormat
。这样的事情应该有效:
double a = 10.19823493;
double b = 1.2;
NumberFormat formatter = NumberFormat.getInstance();
formatter.setMaximumFractionDigits(2);
formatter.setMinimumFractionDigits(2);
System.out.println(formatter.format(a)); // "10.20"
System.out.println(formatter.format(b)); // "1.20"
我的 Android 应用程序(Java 代码)正在显示 15.0
,我需要显示的格式是 15.00
。我的变量是 double
。我怎样才能做到这一点?我试过的是 Jonik 在 Round a double to 2 decimal places:
public static double round(double value, int places) {
if (places < 0) throw new IllegalArgumentException();
BigDecimal bd = BigDecimal.valueOf(value);
bd = bd.setScale(places, RoundingMode.HALF_UP);
return bd.doubleValue();
}
然后我用这个:
double myValue = 15.0;
round(myValue, 2);
System.out.println(myValue);
我想看到 15.00
打印出来。但是,我看到的是 15.0
而这不是我想要的。有什么想法可以实现我的需要吗?谢谢。
我认为您正在寻找 NumberFormat
。这样的事情应该有效:
double a = 10.19823493;
double b = 1.2;
NumberFormat formatter = NumberFormat.getInstance();
formatter.setMaximumFractionDigits(2);
formatter.setMinimumFractionDigits(2);
System.out.println(formatter.format(a)); // "10.20"
System.out.println(formatter.format(b)); // "1.20"