我必须将String
(从Excel单元格读取)转换为BigDecimal
,但我必须考虑:
BigDecimal
数字将有两位十进制数字,因此我必须以这种方式形成它- 原始字符串可以使用逗号(“,”)作为小数分隔符(这是我更大的问题,因为如果我写
BigDecimal num = new BigDecimal(rowCell);
并且 rowCell 将逗号作为小数分隔符我会异常(exception)...)
你能帮我吗? 预先感谢您
最佳答案
您需要按步骤进行:
- 将逗号
,
替换为点.
- 从这个新字符串中获取一个
BigDecimal
- 使用
ROUND_DOWN
或ROUND_UP
将其四舍五入到小数点后 2 位
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);
<小时/>
关于Java 将字符串转换为 BigDecimal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50943472/