我是靠谱客的博主 如意心锁,最近开发中收集的这篇文章主要介绍java bigdecimal 格式化_java中对BigDecimal 进行格式化的一个小工具类,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

java 编程,如果涉及到金额的计算,最好采用Decimal 或者BigDecimal,原因是这样不会怎么丢精度,如果用其他类型会丢精度。但用Decimal 表示的数字,最终显示在界面上的时候,还是需要格式化的,否则很难看,这里贴一个在自己项目里用到的格式化工具类,如果要其他格式,可以按例子改.import java.math.BigDecimal;

import java.math.RoundingMode;

import java.text.DecimalFormat;

import java.text.ParseException;

public class NumberFormatUtil {

private final static DecimalFormat DF_2 = new DecimalFormat("#,##0.00");

private final static DecimalFormat DF_0 = new DecimalFormat("#,###");

private final static DecimalFormat DF_1 = new DecimalFormat("#,###.################################");

public static final RoundingMode ROUNDING_MODE_FOR_FORMAT_UTIL =RoundingMode.HALF_UP;

public static String formatTo2DecimalPlaces(BigDecimal num){

if(num==null){

num=BigDecimal.ZERO;

}

DF_2.setRoundingMode(ROUNDING_MODE_FOR_FORMAT_UTIL);

return DF_2.format(num);

}

public static String formatToNoZero(BigDecimal num){

if(num==null){

num=BigDecimal.ZERO;

}

DF_1.setRoundingMode(ROUNDING_MODE_FOR_FORMAT_UTIL);

return DF_1.format(num);

}

public static String formatTo0DecimalPlaces(BigDecimal num){

if(num==null){

num=BigDecimal.ZERO;

}

DF_0.setRoundingMode(ROUNDING_MODE_FOR_FORMAT_UTIL);

return DF_0.format(num);

}

public static String formatToPatternDecimalPlaces(BigDecimal num,String pattern){

if(num==null){

num=BigDecimal.ZERO;

}

return formatToInputDecimalPlaces(num,findDecimalPlaces(pattern));

}

public static String formatToInputDecimalPlaces(BigDecimal num,int places){

if(num==null){

num=BigDecimal.ZERO;

}

DecimalFormat df= new DecimalFormat();

df.setMaximumFractionDigits(places);

df.setMinimumFractionDigits(places);

df.setRoundingMode(ROUNDING_MODE_FOR_FORMAT_UTIL);

return df.format(num);

}

public static String readValue(String value){

return value.replaceAll(",", "");

}

public static int findDecimalPlaces(String pattern){

int decimalPlaces=0;

if(pattern!=null && !pattern.contains("1.0")){

int idx=pattern.indexOf(".");

while(idx < pattern.length()&&pattern.charAt(idx)!='1'){

idx++;

decimalPlaces++;

}

}

return decimalPlaces;

}

}

这样就可以实现 Decimal 或者 BigDecimal 的格式化了。

最后

以上就是如意心锁为你收集整理的java bigdecimal 格式化_java中对BigDecimal 进行格式化的一个小工具类的全部内容,希望文章能够帮你解决java bigdecimal 格式化_java中对BigDecimal 进行格式化的一个小工具类所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部