将字符串转换为bigDecimal

时间:2010-08-05 10:39:52

标签: java string

我的问题是我有一个用户输入字段,这是一个文本字段,我必须将其转换为bigDecimal以便在数据库中使用。

2,50      --> 2,50  
2.50      --> 2,50  
2.5       --> 2,50  
1200      --> 1200 (or 1200,00)  
1.200     --> 1200 (or 1200,00)  
1.200,50  --> 1200,50  
1,200.50  --> 1200,50

有没有一种简单的方法可以转换所有这些输入?使用 valueOf parseDouble 不能完成这项工作。我也尝试过DecimalFormatter,但是我找不到正确的格式。

1 个答案:

答案 0 :(得分:2)

DecimalFormat是可行的方法 - 为用户的区域设置获取相应的DecimalFormat,并调用setParseBigDecimal(true)以便它解析为BigDecimal而不是double }。

请注意,您确实需要知道正确的区域设置 - 否则“1,251”可能意味着“多于一个四分之一”或“整数1251”。不可否认,你可以尝试用可用的每种格式解析它,并猜测哪种格式是成功的格式,但这对我来说听起来不是一个好主意。