如何将2.278481更改为2.2?
double a = 180;
double b = 79;
double x = (a/b);
Math.ceil()
返回3
,Math.floor()
返回2
答案 0 :(得分:3)
您可以将setMaximumFractionDigits设置为1.像这样:
public class Test {
public static void main(String[] args) {
System.out.println(format(14.0184849945)); // prints '14.0'
System.out.println(format(13)); // prints '13'
System.out.println(format(3.5)); // prints '3.5'
System.out.println(format(3.138136)); // prints '3.1'
}
public static String format(Number n) {
NumberFormat format = DecimalFormat.getInstance();
format.setRoundingMode(RoundingMode.FLOOR);
format.setMinimumFractionDigits(0);
format.setMaximumFractionDigits(1);
return format.format(n);
}
}
这可能有助于你
答案 1 :(得分:0)
试试这个:
public static String customFormat(String pattern, double value) {
NumberFormat nf = NumberFormat.getNumberInstance(Locale.ENGLISH);
DecimalFormat df = (DecimalFormat)nf;
df.applyPattern(pattern);
return df.format(value);
}
通话:
double x = Double.parseDouble(customFormat("###.#", a/b);
此方法也会对数字进行舍入。
对于英语区域设置:
,
不是十进制分割器。这是有效的:##,##,##,##。###
.
是十进制分割器。这是无效的:##。##。##。##,###
(至少不适用于此语言环境)