2016-07-29 86 views
-3

如何在java中設置特定的精度以進一步計算?例如,如果我需要進行高達11個精度的計算;我如何設置它?爲計算設置Java精度

+0

使用'BigDecimal'具有無限精度。 – ifly6

+0

如果使用'BigDecimal',則可以控制所有計算的精度。不像@ ifly6在說什麼,它實際上並不是無限的(沒有無限的記憶)。 – Andreas

回答

0

你不要「在java中設置了一個特定的精度用於進一步計算」

你要做的是選擇一種數字格式,它支持你需要的精度,並使用該格式進行計算。 double具有大約15位有效數字的精度,如果您需要更多(即小數點右側11個位置,無論大小如何),那麼您必須使用BigDecimal,其中精度僅受可用存儲器限制。然後你截斷到輸出所需的精度。

請注意,BigDecimal要求您在操作結果爲重複小數(即1/3)時指定精度,以避免嘗試創建無限長的重複小數。您可以通過向divide()方法提供RoundingModeMathContext來完成此操作。

請注意,MathContext有點接近您的請求,因爲它封裝了精確和舍入模式。然而,它並不適用於將來的計算,它必須在每次計算時提供,它將控制。