我需要从用户输入数字作为字符串并将其解析为 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/