Java 没有以数字格式获得正确的输出

Java 没有以数字格式获得正确的输出,java,android,number-formatting,Java,Android,Number Formatting,我正在区域设置US中格式化数字。我面临的问题是,它没有显示用户给出的确切数字,而是显示高达8位数的数字 在childview中,它显示用户输入,但当我尝试在groupview中显示它时,它只显示8位数字 代码: 问题是,double不能容纳这么多有效数字(尾数)。您应该在这里使用BigDecimal,否则您可能会丢失精度。该代码甚至无法编译。向我们展示真实完整的代码,再现问题。检查它显示了什么??这些值是相同的吗?此外,对于货币值,您可能应该使用bigdecime。在格式化之前直接记录doubl

我正在
区域设置US
中格式化数字。我面临的问题是,它没有显示用户给出的确切数字,而是显示高达8位数的数字

在childview中,它显示用户输入,但当我尝试在groupview中显示它时,它只显示8位数字 代码:


问题是,
double
不能容纳这么多有效数字(尾数)。您应该在这里使用
BigDecimal
,否则您可能会丢失精度。

该代码甚至无法编译。向我们展示真实完整的代码,再现问题。检查它显示了什么??这些值是相同的吗?此外,对于货币值,您可能应该使用
bigdecime
。在格式化之前直接记录double,以确保该值是您所期望的值。它以前有效,但现在无效。我不是投反对票的人,但可能是因为它不是真的。Double可以轻松地为问题中的示例保留足够的数字。虽然在这种情况下使用BigDecimal可能仍然是一个好主意,但解释是不正确的。
NumberFormat numberFormat= NumberFormat.getNumberInstance(locale);
numberFormat.format(double);// double is the user given input