java - 如何将带有小数点分隔符逗号和点的字符串解析为 Double

标签 java string decimal separator

我需要从用户输入数字作为字符串并将其解析为 Double 对象。

我希望它能够采用逗号(作为小数点分隔符)和点,并仅用点来保存和输出。

示例:22,33-->22.33 和 22.33-->22.33

我使用的是:

NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);
        try {
            Number number = format.parse(formDto.getWeight());
            kitten.setWeight(number.doubleValue());
        } catch (ParseException e) {
            e.printStackTrace();
        }

但它只能获取带有“,”分隔符的值。当用户输入点时,它会丢失所有小数并返回 22.33 -->22.0 或 4.1 --> 4.0 当我调试时,我发现这是一个解析问题(显而易见),但不知道解决它的最佳实践是什么。

最佳答案

您可以替换点“.”在解析之前用逗号 :,"。

NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);
    try {
        Number number = format.parse(formDto.replace('.', ',').getWeight());
        kitten.setWeight(number.doubleValue());
    } catch (ParseException e) {
        e.printStackTrace();
    }

关于java - 如何将带有小数点分隔符逗号和点的字符串解析为 Double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40718941/

相关文章:

javascript - 正则表达式:包括标点符号的字符串匹配

asp.net-mvc - mvc3中的十进制错误-该值对于字段无效

c++ - float 的整数部分中的 10 进制数字的最大位数是多少

java - 使用 RSA 加密长字符串 (Java)

java - 如何在 Java 中将私有(private) Swing 组件变成公共(public) Swing 组件?

python - 如果其中一个键的值在字符串中,则返回字典键

php - mysql将十进制时间转换为xx :xx format

java - 增加标签值或添加标签 xSTL

java - 如何解决 glassfish 服务器上的部署错误?

python - 如何在python中找到包含焦点词的字符串的最长匹配