我目前正在編寫一個計算器應用程序。我知道,雙打併不是最好的數學選擇。應用程序中的大多數功能都具有很高的精度,但是沒有得到超級難看的結果。我的解決方案是向用戶顯示精度只有12位小數。我選擇了12,因爲我的最低精度來自我的數值派生函數。在java中顯示雙精度到一定的精度
我遇到的問題是,如果我將它乘以一個縮放器然後再除以縮放器,那麼精度將很可能會被丟失。如果我使用DecimalFormat,則無法僅顯示12,並且使用E表示科學記數法正確顯示,但如果不需要,則不會出現。
例如我想
1.23456789111213 to be 1.234567891112
,但從來沒有
1.234567891112E0
但我也想
1.23456789111213E23 to be 1.234567891112E23
所以基本上我想一個數字的字符串格式化12個小數位,保留科學記數法,但不應該科學,當它不應該
看看你在做什麼?快捷方式可能導致艱苦的工作!你知道double不是正確的選擇,但是當你習慣了它時,你應該嘗試克服double的問題,實際上,它應該學習如何使用BigDecimal(如所建議的!) – Frankie 2011-04-05 22:01:09