Java将字符串转换为BigDecimal

时间:2018-06-20 08:16:01

标签: java string type-conversion format bigdecimal

我必须将String(从excel单元读取)转换为BigDecimal,但我必须考虑:

  • BigDecimal数字将包含两位十进制数字,所以我必须以这种方式形成
  • 原始字符串可以使用逗号(“,”)作为小数点分隔符(这是我更大的问题,因为如果我写BigDecimal num = new BigDecimal(rowCell);并且rowCell以逗号作为小数点分隔符,我会例外...)< / li>

你能帮我吗? 预先谢谢你

2 个答案:

答案 0 :(得分:1)

您需要分步进行:

  • 用点,代替逗号.
  • 从此新字符串中获取BigDecimal
  • ROUND_DOWNROUND_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);   

Working DEMO

答案 1 :(得分:0)

只需用点替换逗号。它足够简单和快速。

BigDecimal num = new BigDecimal(rowCell.replace(',', '.'));