package com.fzzy.utils; import java.math.BigDecimal; import java.text.DecimalFormat; /** * 数字格式化工具类 */ public class NumberUtil { /** * 对double类型的数值保留指定位数的小数。
* 该方法舍入模式:向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为向上舍入的舍入模式。
* 注意:如果精度要求比较精确请使用 keepPrecision(String number, int precision)方法 * @param number 要保留小数的数字 * @param precision 小数位数 * @return double 如果数值较大,则使用科学计数法表示 */ public static double keepPrecision(Double number, int precision) { if(null == number || 0.0 == number ) return 0.0; BigDecimal bg = new BigDecimal(number); return bg.setScale(precision, BigDecimal.ROUND_HALF_UP).doubleValue(); } /** * 对float类型的数值保留指定位数的小数。
* 该方法舍入模式:向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为向上舍入的舍入模式。
* 注意:如果精度要求比较精确请使用 keepPrecision(String number, int precision)方法 * @param number 要保留小数的数字 * @param precision 小数位数 * @return float 如果数值较大,则使用科学计数法表示 */ public static float keepPrecision(Float number, int precision) { if(null == number) return 0f; BigDecimal bg = new BigDecimal(number); return bg.setScale(precision, BigDecimal.ROUND_HALF_UP).floatValue(); } /** * double转字符串,避免出现科学计数法 * @param d * @return */ public static String doubleToStr(Double d) { if(null == d) return ""; DecimalFormat df = new DecimalFormat("0.0"); return df.format(d); } public static void main(String[] args) { System.out.println((8) % Integer.valueOf(4) == 0); } }