使用BigDecimal对逗号格式的数字进行处理(解析+转换)

使用BigDecimal对逗号格式的数字进行处理(解析+转换)| Id | Title | DateAdded | SourceUrl | PostType | Body | BlogId | Description | DateUpdated | IsMarkdown | EntryName | CreatedTime | IsActive | AutoDesc | AccessPermission |

| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------|
| 17800651| 使用BigDecimal对逗号格式的数字进行处理(解析+转换)| 2023-10-31T16:45:00| | BlogPost|

应用场景: 对逗号格式的两位小数点数字进行解析和转换。

复制代码
    public void calculateTest(){
        BigDecimal number1 = transfer2BigDecimal("1,111,111,111.11");
        BigDecimal number2 = transfer2BigDecimal("1,111,111,111.11");
        BigDecimal sumNumber = number1.add(number2);
        System.out.println(sumNumber);     //2222222222.22
    </span><span style="color: #008000;">//</span><span style="color: #008000;">转换为逗号格式的数字</span>
    DecimalFormat df = <span style="color: #0000ff;">new</span> DecimalFormat("#,###.00"<span style="color: #000000;">);
    String strSumNumber </span>=<span style="color: #000000;"> df.format(sumNumber);
    System.out.println(strSumNumber);     </span><span style="color: #008000;">//</span><span style="color: #008000;">2,222,222,222.22</span>

}

</span><span style="color: #008000;">//</span><span style="color: #008000;">解析逗号格式的数字</span>
<span style="color: #0000ff;">private</span><span style="color: #000000;"> BigDecimal transfer2BigDecimal(String str) {
    DecimalFormat format </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> DecimalFormat();
    </span><span style="color: #0000ff;">try</span><span style="color: #000000;"> {
        Number number </span>=<span style="color: #000000;"> format.parse(str);
        DecimalFormat dfFormat </span>= <span style="color: #0000ff;">new</span> DecimalFormat("#.##"<span style="color: #000000;">);
        String strNumber</span>=<span style="color: #000000;"> dfFormat.format(number);

        BigDecimal resultNumber </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> BigDecimal(strNumber);
        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> resultNumber;
    } </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (ParseException e) {
        </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">null</span><span style="color: #000000;">;
    }
}</span></pre>
复制代码

 

BigDecimal 去除小数位

复制代码
String value = "";
double numValue = Double.valueOf(value);
//保留6位小数,并四舍五入
BigDecimal decimal = 
new BigDecimal(String.valueOf(value)).setScale(6, BigDecimal.ROUND_HALF_UP);

//去除小数点后最后的0
value = decimal.stripTrailingZeros().toPlainString();
System.out.println(cellValue);

复制代码

 

| 648658| | 2023-10-31T17:19:00| false| | 2023-10-31T16:45:25.83| true| 应用场景: 对逗号格式的两位小数点数字进行解析和转换。 public void calculateTest(){ BigDecimal number1 = transfer2BigDecimal("1,111,111,111.11"); BigDecimal number2 = transfer2B| Anonymous|
posted @   RalphLauren  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示