我必须将String(从excel单元读取)转换为BigDecimal,但是我必须考虑:该BigDecimal数字将有两位十进制数字,所以我必须以这种方式形成它原始字符串可以使用逗号(“,”)作为小数点分隔符(这是我更大的问题,因为如果我编写BigDecimal num = new BigDecimal(rowCell);并且rowCell以逗号作为小数点分隔符,我将采取例外措施...)你可以帮帮我吗?先感谢您
2 回答
![?](http://img1.sycdn.imooc.com/533e4bd900011a1d02000200-100-100.jpg)
慕运维8079593
TA贡献1876条经验 获得超5个赞
您需要按以下步骤进行操作:
用
,
点代替逗号.
BigDecimal
从这个新字符串中获取一个用
ROUND_DOWN
或将其四舍五入到小数点后两位ROUND_UP
String str = "123,456"; // String 132,456
str = str.replace(',', '.'); // String 132.456
BigDecimal b = new BigDecimal(str); // BigDec 132.456
b = b.setScale(2, BigDecimal.ROUND_DOWN); // BigDec 132.45
如果您拥有,那么您可以:
String str = "123,456";
BigDecimal b = new BigDecimal(str.replace(',', '.')).setScale(2, BigDecimal.ROUND_DOWN);
![?](http://img1.sycdn.imooc.com/545868c20001b8c402200220-100-100.jpg)
倚天杖
TA贡献1828条经验 获得超3个赞
只需用点替换逗号即可。它既简单又快速。
BigDecimal num = new BigDecimal(rowCell.replace(',', '.'));
添加回答
举报
0/150
提交
取消