DecimalFormat df4 = new DecimalFormat("######.00");
df4.setRoundingMode(RoundingMode.HALF_UP);//网上都是说加这一行代码
double s = 3.155;
System.out.println(df4.format(s));//输出还是3.15
//jdk版本:1.8.291
RoundingMode.CEILING:取右边最近的整数
RoundingMode.DOWN:去掉小数部分取整,也就是正数取左边,负数取右边,相当于向原点靠近的方向取整
RoundingMode.FLOOR:取左边最近的正数
RoundingMode.HALF_DOWN:五舍六入,负数先取绝对值再五舍六入再负数
RoundingMode.HALF_UP:四舍五入,负数原理同上
RoundingMode.HALF_EVEN:这个比较绕,整数位若是奇数则四舍五入,若是偶数则五舍六入
package com.csdn;
import java.math.BigDecimal;
import java.math.RoundingMode;
/**
*
* @作者:Roc-xb
* @联系QQ:327844761
* @微信公众号:ewbang
*
*/
public class Test01 {
public static void main(String[] args) {
double s = 3.155;
System.out.println(round5(String.valueOf(s)));
}
public static String round5(String str) {
BigDecimal bigDecimal = new BigDecimal(str);
return String.valueOf(bigDecimal.setScale(2, RoundingMode.HALF_UP));
}
}
如有帮助,望采纳。点击我回答右上角【采纳】按钮。