在浮點格式中保持精確度
在Java 中,經常使用String.format("%f") 來格式化浮點數導緻小值後面出現不需要的小數零。為了解決這個問題,提出了一種客製化方法來區分整數和雙精度數並對其進行適當的格式化。
所提供的解決方案利用了 64 位元雙精度數可以精確表示特定範圍內的整數這一事實。它檢查 double 值是否等於其長整型轉換。如果為 true,則使用 String.format("%d") 將值格式化為整數。否則,使用 String.format("%s") 將其格式化為具有最低必要精度的雙精度型。
透過合併此邏輯,該解決方案有效地從整數值中刪除不必要的小數零,同時保留實際精度雙打。不需要字串操作,從而防止與之相關的任何效能損失。
因此,輸出為:
232 0.18 1237875192 4.58 0 1.2345
請注意,由於依賴語言環境,此方法與區域設定相關字串.格式。使用此方法時,請注意基於使用者區域設定的潛在格式差異。
以上是如何在 Java 中精確格式化浮點數,同時避免不必要的尾隨零?的詳細內容。更多資訊請關注PHP中文網其他相關文章!