鑑於 64 位元雙精確度數能夠精確表示一定範圍內的整數,在列印混合整數和雙值。雖然 String.format("%f") 提供了緊密格式,但它為小值添加了不必要的尾隨零。
尋求解決方案:
目標是列印整數值儲存為不含小數零的雙精度數,同時保持實際雙精度數的高精度。例如,考慮這些輸入:
預期的輸出將為:
高效率格式:
高效率格式:public static String fmt(double d) { if (d == (long) d) return String.format("%d", (long) d); else return String.format("%s", d); }
為了最佳化整數值,我們可以利用數值可以精確表示為64 位元雙精度數。以下Java 程式碼片段無需借助效能密集字串操作即可實現此目的:
對於非整數值,程式碼使用 %s 以最小精度保留原始雙精度值。
結果:232 0.18 1237875192 4.58 0 1.2345應用於範例輸入時,輸出與所需的格式相符:
以上是如何在 Java 中以精確的格式列印雙精度數,消除不必要的尾隨零?的詳細內容。更多資訊請關注PHP中文網其他相關文章!