如何将字符串解析为文字双精度值?我有一组我正在解析的概率值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.
如何将字符串解析为文字双精度值?我有一组我正在解析的概率值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.
双打只有 64 位长。有无穷多个实数。因此,不可能将每个实数精确地表示为 64 位双精度数。所以使用双打总是会导致近似的结果。如果您需要绝对精度,请使用 BigDecimal。
尝试这个:
DecimalFormat df =(DecimalFormat)NumberFormat.getInstance();
df.setParseBigDecimal(true);
BigDecimal bd = (BigDecimal) df.parse(probabilityString);