保留两位小数(截断)
下面展示一些内联代码片。
double num = 11.256;
DecimalFormat df = new DecimalFormat("#.##");
//指定RoundingMode
df.setRoundingMode(RoundingMode.DOWN);
String str = df.format(num);
double formatNum = Double.parseDouble(str);
System.out.println(formatNum);
保留两位小数(四舍五入)
double num = 11.256;
DecimalFormat df = new DecimalFormat("#.##");
//指定RoundingMode
df.setRoundingMode(RoundingMode.HALF_UP);
String str = df.format(num);
double formatNum = Double.parseDouble(str);
System.out.println(formatNum);
HALF_EVEN-----DecimalFormat默认的RoundingMode为RoundingMode.HALF_EVEN,也称为“银行家舍入法”,主要在美国使用。四舍六入,五分向相邻的偶数舍入。以下例子为保留小数点1位,那么这种舍入方式下的结果。15–>225–>2
HALF_UP—四舍五入
HALF_DOWN—五舍六入5—>26—>3
DOWN—直接截断
UP—始终对非零舍弃部分前面的数字加1
占位符
0表示数字占位符,实际位数不够时补零比实际数字的位数多,不足的地方用0补上。newDecimalFormat.format//结果:014newDecimalFormat.format//结果:140newDecimalFormat.format//结果:0140整数部分比实际数字的位数少,整数部分不改动小数部分比实际数字的位数少,根据小数部分占位符数量保留小数newDecimalFormat.format//结果:1146newDecimalFormat.format//结果:115newDecimalFormat.format//结果:115
#表示数字占位符,实际位数不够时不补零比实际数字的位数多,不变newDecimalFormat.format//结果:14newDecimalFormat.format//结果:14newDecimalFormat.format//结果:14整数部分比实际数字的位数少,整数部分不改动小数部分比实际数字的位数少,根据小数部分占位符数量保留小数newDecimalFormat.format//结果:1146newDecimalFormat.format//结果:115newDecimalFormat.format//结果:115
文章为作者独立观点,不代表股票配资公司观点