解决DecimalFormat("#.00")使用时小数点后第三位值为5,第二位为偶数时无法进位的问题

/**
	 * 小数计算(四舍五入):解决DecimalFormat("#.00")使用时小数点后第三位值为5,第二位为偶数时无法进位的问题
	 * @param 
	 * @return
	 */
	public double decimalCalculation(Double startVal){
		DecimalFormat df = new DecimalFormat("#.00");  
		String startStr = startVal.toString();
		String startDecimal = startStr.split("\\.")[1];
		Double jishu = 0.01;
		Double endVal = 0.0;
		if(startDecimal.length()>2 && "5".equals(String.valueOf(startDecimal.charAt(2))) && Integer.parseInt(String.valueOf(startDecimal.charAt(1)))%2==0){
			endVal = Double.valueOf(startStr.substring(0, startStr.length()-1))+jishu;
		} else{
			endVal = Double.valueOf(df.format(startVal));
		}
		return Double.valueOf(df.format(endVal));
	}

猜你喜欢

转载自my.oschina.net/miwang/blog/1648645
今日推荐