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);
}
}