Java 按此方式进行四舍五入(保持小数)
如何更改2.278481。。。到2.2Java 按此方式进行四舍五入(保持小数),java,math,rounding,Java,Math,Rounding,如何更改2.278481。。。到2.2 double a = 180; double b = 79; double x = (a/b); Math.ceil()返回3和Math.floor()返回2尝试以下操作: public static String customFormat(String pattern, double value) { NumberFormat nf = NumberFormat.getNumberInstance(Locale.ENGLISH); De
double a = 180;
double b = 79;
double x = (a/b);
Math.ceil()
返回3
和Math.floor()
返回2
尝试以下操作:
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);
这种方法也可以对数字进行四舍五入
对于英语区域设置:
,
不是小数拆分器。这是有效的:###,##,##,#,#,###
是十进制拆分器。这是无效的:##############,###
(至少不适用于此区域设置)您可以将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);
}
}
这可能会帮助您您是否只有一位浮点数字?是否要打印它?@SathishKumarJ是!如果只需要小数点后1位,则将该值乘以10,转换为整数,然后除以10得到双精度。使用DecimalFormat