来源:透析公式处理,有时候数据有很长的小数位,有的时候由在四位以内,如果用一般的处理方法,那么不足四位的小树会补充0到第四位,这样子有点画蛇添足的感觉,不太好看。所以要根据小数的位数来处理判断。
思路:先把数的小数位和整数位分开成分别的数字字符串,判断小数字符串的长度,如果小于等于四位则直接把原来的数变成字符串返回;如果大于四位,则用字符串函数截取前四位,舍掉尾数。最后把整数部分和小数部分拼接起来返回,就完成了。
/**
* @描述:把计算结果根据小数点的位数截取合适的值。即如果小数点位数小于等于4则不做处理,如果大于四则取前四位
* @方法名: SubFourPoint
* @创建人:陈洋
* @创建时间:2018年6月25日下午2:24:40
* @param number
* @return
* @return String
*/
private static String SubFourPoint(double number) {
int aa = (int) Math.floor(number);//获取整数部分
String bb = String.valueOf(number).replaceAll("\\d+\\.", ""); //获取小数部分
String dd = "";
if(bb.length() > 4) {
String cc = bb.substring(0, 4);//截取前四位小数
if("0000".equals(cc)) {
dd = String.valueOf(aa);
}else {
dd = String.valueOf(aa)+"."+cc;
}
}else {
dd = String.valueOf(number);//不处理小数位,直接转成String类型
}
return dd;
}
扩展:其他的处理保留小数位的方法。
第一种:
java.text.DecimalFormat df =new java.text.DecimalFormat("#.00");
df.format(你要格式化的数字);
第二种:
double d = 3.1415926;
String result = String .format("%.2f",d);
第三种:
double x=23.5455;
NumberFormat ddf1=NumberFormat.getNumberInstance();
ddf1.setMaximumFractionDigits(2);
String s= ddf1.format(x) ;