import java.math.BigDecimal;
/**
* 处理小数的五舍六入问题思路:
*有效位的下一位减一,然后用四舍五入的方式处理
*/
public class RoundOffUtil {
private static final BigDecimalone =new BigDecimal(1);
private static final BigDecimalten =new BigDecimal(10);
public static String handleRoundoff(String source,int pow){
//使有效位减一
//被减数
BigDecimal minuend =one.divide(ten.pow(pow+1));
//减数
BigDecimal subtrahend =new BigDecimal(source);
//两数做差
BigDecimal target = subtrahend.subtract(minuend);
return target.setScale(pow,BigDecimal.ROUND_HALF_UP).toString();
}
public static void main(String[] args) {
String s = RoundOffUtil.handleRoundoff("12.356",2);
System.out.println("=="+s);
}
}
网友评论