String字符串轉(zhuǎn)BigDecimal時(shí),報(bào)NumberFormatException異常的解決
String字符串轉(zhuǎn)BigDecimal時(shí),報(bào)NumberFormatException異常
最近發(fā)現(xiàn)項(xiàng)目的后臺(tái)有報(bào)NumberFormatException異常錯(cuò)誤,
如下:
后來找到對(duì)應(yīng)位置看了一下,發(fā)現(xiàn)是String字符串轉(zhuǎn)BigDecimal時(shí)報(bào)了錯(cuò),
于是寫了個(gè)demo驗(yàn)證一下:
傳入字符串為null時(shí)就會(huì)報(bào)錯(cuò),所以這里要對(duì)傳入的字符串進(jìn)行判空。
String轉(zhuǎn)BigDecimal遇到的坑
1、string類型轉(zhuǎn)換BigDecimal的時(shí)候,一定要進(jìn)行非空判斷。
2、如果是帶有千分位的string數(shù)字,直接轉(zhuǎn)換會(huì)報(bào)java.lang.NumberFormatException,例如下面代碼:
String a="3,100.55"; BigDecimal b=new BigDecimal(a); System.out.println(b);
解決方法
String a="3,100.55"; BigDecimal b=new BigDecimal(a.replace(",","")); System.out.println(b);
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mybatis-plus通過添加攔截器實(shí)現(xiàn)簡(jiǎn)單數(shù)據(jù)權(quán)限
系統(tǒng)需要根據(jù)用戶所屬的公司,來做一下數(shù)據(jù)權(quán)限控制,具體一點(diǎn),就是通過表中的company_id進(jìn)行權(quán)限控制,項(xiàng)目使用的是mybatis-plus,所以通過添加攔截器的方式,修改查詢sql,實(shí)現(xiàn)數(shù)據(jù)權(quán)限,本文就通過代碼給大家詳細(xì)的講解一下,需要的朋友可以參考下2023-08-08IntelliJ IDEA 2018 最新激活碼(截止到2018年1月30日)
這篇文章主要介紹了IntelliJ IDEA 2018 最新激活碼(截止到2018年1月30日)的相關(guān)資料,需要的朋友可以參考下2018-01-01SpringCloud之consul服務(wù)注冊(cè)與發(fā)現(xiàn)、配置管理、配置持久化方式
這篇文章主要介紹了SpringCloud之consul服務(wù)注冊(cè)與發(fā)現(xiàn)、配置管理、配置持久化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03基于Java SSM的健康管理小程序的實(shí)現(xiàn)
本篇文章主要為大家分享了基于SSM健康管理小程序的設(shè)計(jì)與實(shí)現(xiàn)。感興趣的小伙伴可以了解一下2021-11-11Java使用C3P0數(shù)據(jù)源鏈接數(shù)據(jù)庫
這篇文章主要為大家詳細(xì)介紹了Java使用C3P0數(shù)據(jù)源鏈接數(shù)據(jù)庫,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08