我的应用的用户出错并且应用崩溃了
我查看过该报告及其陈述
引起:java.lang.NumberFormatException:无效的double:" 1,36"
我已经复制了在我的应用中输入的数据,但我根本没有这个问题
我甚至要求她将她的数据库发送给我,以便我可以导入确切的数据,但它仍然适用于我
我对双重格式的格式感到困惑,因为我无法在代码中的任何位置查看格式化的内容,
有关进展情况的任何建议?
答案 0 :(得分:2)
简单的方法是(在你的行为之上):
double old_b = b;
b -= a / i;
if (b == old_b) break;
答案 1 :(得分:1)
我刚遇到同样的问题。我正在将浮点值转换为String。是的,它必须是区域设置问题。正如其中一条评论中所述,某些语言环境使用小数分隔符。 最初我正在转换浮动状态 -
String.format("%.1f", value);
然后我将代码更改为
String.format(Locale.ENGLISH, "%.1f", value);
因此,强制使用英语本地转换字符串为我工作。
答案 2 :(得分:1)
您似乎遇到了区域设置问题。不同的区域设置将.
和,
作为小数部分分隔符。您可以使用java.text.NumberFormat
来处理所需的区域设置,例如FRANCE
代表逗号,US
代表点:
// somewhere at Utils.java:
public static final NumberFormat DOUBLE_FORMAT = NumberFormat.getInstance(Locale.FRANCE);
// at call site:
double d = Utils.DOUBLE_FORMAT.parse("1,234").doubleValue();