如何将字符串解析为文字双精度值?我有一组我正在解析的概率值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);