开发时遇到的金额数据类型转换,一直抛出类型转换异常NumberFormatException记录一下。
数据库中该金额字段是String类型,我想要从对象中获取后转换为BigDecimal类型。
首先BigDecimal初始化:
BigDecimal bg = new BigDecimal("0.00");
我这里初始化传参为String类型,转换为数值 0.00 ,还可以有double、float等类型
踩到的坑
原本的写法
BigDecimal decimal2 = new BigDecimal(record.getTranAmt());
这里record.getTramAmt()为String类型
测试环境中金额过大,所以存入的金额存在 这种”4,706,000.00“ 带有 逗号的数值,导致一直解析错误。
正确的写法
BigDecimal decimal2 = new BigDecimal(record.getTranAmt().replace(",",""));
删除掉 ”,“ 就可以成功转换。