数字格式化工具类


/**
* 数字格式化工具类.<br>
*/
public abstract class NumberUtils {
/**
* 按指定的样式格式化数字.<br>
* 例如:
* <li><code>format(1,"#0.000")</code>,结果1.000
* <li><code>format(1.165686,"#0.000")</code>,结果1.166
* <li><code>format(0,"#0.00")</code>,结果0.00
* <li><code>format(0.2556,"#0.00%")</code>,结果25.56%
* <li><code>format(1,"#0%")</code>,结果100%
* @param d double
* @param pattern 格式化字符串. 如:#0.000(带三位小数点,四舍五入)
* @return
*/
public static String format(double d, String pattern) {
DecimalFormat nf = new DecimalFormat(pattern);
return nf.format(d);
}

/**
* {@link #format(double, String)}.
* @param doubleStr
* @param pattern
* @return
*/
public static String format(String doubleStr, String pattern) {
double d = 0;
try {
d = Double.parseDouble(doubleStr);
} catch (NumberFormatException e) {
System.out.println("字符串转换成数字有异常! doubleStr=" + doubleStr);
}
return format(d, pattern);
}

/**
* 和 {@link #format(double, String)}相似,区别在于返回值增加了一个html的空格字符( ).
* @param d
* @param pattern
* @return 返回值增加了一个html格式的空格符( ).
*/
public static String formatWithBlank(double d, String pattern) {
return format(d, pattern) + " ";
}

/**
* {@link #formatWithBlank(double, String)}
* @param doubleStr
* @param pattern
* @return
*/
public static String formatWithBlank(String doubleStr, String pattern) {
double d = 0;
try {
d = Double.parseDouble(doubleStr);
} catch (NumberFormatException e) {
System.out.println("字符串转换成数字有异常! doubleStr=" + doubleStr);
}
return formatWithBlank(d, pattern);
}

/**
* 给数字字符后增加一个html格式的空格符( );<br>
* 用途:在将html页面导出excel格式时,excel会默认将数字字符串转换成数字,这样会导致字符串前后的00被清掉.
* 调用此方法,增加了一个空格字符后,可以避免excel的自动转换. 如:1.200,excel会自动转换成1.2;
* 00012,excel会自动转换成12;
* @param numStr 数字字符串
* @return
*/
public static String addBlank(String numStr) {
return numStr + " ";
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
double d = 1.165686;
String result = NumberUtils.format(d, "#0.000");
System.out.println("" + result);
d = 1;
result = NumberUtils.format(d, "#0.00%");
System.out.println("" + result);
d = 0;
result = NumberUtils.format(d, "#0.0%");
System.out.println("" + result);
d = 0.2556;
result = NumberUtils.format(d, "#0.00%");
System.out.println("" + result);
d = 1;
result = NumberUtils.format(d, "#0%");
System.out.println("" + result);
System.out.println("-----------");
System.out.println(NumberUtils.format("3.1415926", "#0.00%"));
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值