1

如何将字符串解析为文字双精度值?我有一组我正在解析的概率值Double.valueOf(probabilityString),需要精确地求和1.0d

例如,双精度值的总和是0.999999...当概率字符串为 时0.2, 0.5, 0.2, 0.1

我想要的是将双精度值解析为0.2d, 0.5d, 0.2d, 0.1d,这可能吗?

我正在处理一个接受作为参数的第三方库,double[]如果双精度值不精确地总结为1.0d.

4

3 回答 3

4

双打只有 64 位长。有无穷多个实数。因此,不可能将每个实数精确地表示为 64 位双精度数。所以使用双打总是会导致近似的结果。如果您需要绝对精度,请使用 BigDecimal。

于 2012-06-07T08:16:25.740 回答
0

使用Java 中可用的BigDecimal

看到这个链接,它一定会对你有所帮助。

如果您有任何问题,请告诉我。

于 2012-06-07T08:16:58.607 回答
0

尝试这个:

DecimalFormat df =(DecimalFormat)NumberFormat.getInstance(); 
df.setParseBigDecimal(true); 
BigDecimal bd = (BigDecimal) df.parse(probabilityString);
于 2012-06-07T08:32:17.853 回答