我们如何在java中设置特定的精度以进行进一步的计算?例如,如果我需要进行高达11精度的计算;我该如何设置?
答案 0 :(得分:0)
您没有“在java中设置特定的精度以进行进一步的计算”。
您所做的是选择支持所需精度的数字格式,并使用该格式执行计算。 double
有大约15个有效数字的精度,如果你需要更多(即小数点右边的11个位置,无论幅度如何),那么你必须使用BigDecimal
,其精度仅受限于有效内存。然后在输出时截断所需的精度。
请注意,BigDecimal
要求您在操作结果可以是重复小数(即1/3
)时指定精度,以避免尝试创建无限长的重复小数。您可以通过向RoundingMode
方法提供MathContext
或divide()
来执行此操作。
请注意,MathContext
有点接近您的请求,因为它封装了精度和舍入模式。但是,它不适用于未来的全局计算,必须在每个要控制的计算中提供。