五舍六入

 

 

/**
 * 五舍六入。如要保留两位小数,如14.1256 -->14.12 ,4.0 -->4.00 ,4.1 -->4.10。
 *
 * @ preservingDigit 保留位数。
 * @ valueTmep
 *
 */
public BigDecimal getValau(int preservingDigitTemp,double valueTmep){


 double value =valueTmep;
 
 int preservingDigit = preservingDigitTemp ; // 要求保留的位数。
 
 int position = String.valueOf(value).indexOf(".");
 
 int length = String.valueOf(value).length();
 
 if(length - position - 1 > preservingDigit + 1){
     String strValue = String.valueOf(value).substring(0,position+preservingDigit + 2);
     value = Double.parseDouble(strValue);
     //System.out.println(value);
 }
 
 java.math.BigDecimal bigDecimalValue =  new java.math.BigDecimal(value * 100);
 
 value = bigDecimalValue.setScale(0,java.math.BigDecimal.ROUND_HALF_DOWN).doubleValue()/100.0;
 
 java.math.BigDecimal bigDecimalRusult = new java.math.BigDecimal(value).setScale(preservingDigit,java.math.BigDecimal.ROUND_HALF_DOWN);
 
 
 return bigDecimalRusult;

}

你可能感兴趣的:(String)