double类型数据保留四位小数的另一种思路

思路:先把数的小数位和整数位分开成分别的数字字符串,判断小数字符串的长度,如果小于等于四位则直接把原来的数变成字符串返回;如果大于四位,则用字符串函数截取前四位,舍掉尾数。最后把整数部分和小数部分拼接起来返回,就完成了。

/**
	 * @描述:把计算结果根据小数点的位数截取合适的值。即如果小数点位数小于等于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) ;
思路:先把数的小数位和整数位分开成分别的数字字符串,判断小数字符串的长度,如果小于等于四位则直接把原来的数变成字符串返回;如果大于四位,则用字符串函数截取前四位,舍掉尾数。最后把整数部分和小数部分拼接起来返回,就完成了。 /** * @描述:把计算结果根据小数点的位数截取合适的值。即如果小数点位数小于等于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) ;
经验分享 程序员 微信小程序 职场和发展