Java 将字符串转换为 BigDecimal
Java Convert String into BigDecimal
我必须将 String
(从 excel 单元格读取)转换为 BigDecimal
,但我必须考虑:
BigDecimal
数字将有两位小数,所以我必须以这种方式构成它
- 原始字符串可以使用逗号 (",") 作为小数点分隔符(这是我更大的问题,因为如果我写
BigDecimal num = new BigDecimal(rowCell);
并且 rowCell 有逗号作为小数点分隔符,我将采取例外... )
你能帮帮我吗?
提前谢谢你
只需将逗号替换为点即可。简单又快速。
BigDecimal num = new BigDecimal(rowCell.replace(',', '.'));
您需要按步骤进行:
- 将逗号
,
替换为点 .
- 从这个新字符串中得到一个
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);
我必须将 String
(从 excel 单元格读取)转换为 BigDecimal
,但我必须考虑:
BigDecimal
数字将有两位小数,所以我必须以这种方式构成它- 原始字符串可以使用逗号 (",") 作为小数点分隔符(这是我更大的问题,因为如果我写
BigDecimal num = new BigDecimal(rowCell);
并且 rowCell 有逗号作为小数点分隔符,我将采取例外... )
你能帮帮我吗? 提前谢谢你
只需将逗号替换为点即可。简单又快速。
BigDecimal num = new BigDecimal(rowCell.replace(',', '.'));
您需要按步骤进行:
- 将逗号
,
替换为点.
- 从这个新字符串中得到一个
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);