我的问题是,我有一个用户输入字段,这是一个textfield,我必须将它转换为一个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,但找不到正确的格式。
发布于 2010-08-05 10:41:39
DecimalFormat是一种方法--为用户的区域设置获取适当的DecimalFormat,并调用setParseBigDecimal(true),以便将其解析为BigDecimal而不是double。
请注意,您确实需要知道正确的地区-否则"1,251“可能意味着”稍多于四分之一“或”整数1251“。诚然,您可以尝试使用所有可用的格式来解析它,并猜测成功的格式中哪一种是正确的,但对我来说,这听起来并不是一个好主意。
https://stackoverflow.com/questions/3413881
复制相似问题