2016-02-16 37 views
0

我有一個簡單的任務,將1乘以10的冪n,其中的n值是動態的。我需要將結果保存在一個雙變量中。在除數的值爲1000000之前,雙變量正確顯示它是0.000001。一旦除數值超過6個零點,以double形式保存的值就是指數形式(科學格式,例如:1E-8)。如何解決這個問題,因爲當轉換爲json時,雙變量返回爲0。Java將double小於等於6的小數點轉換爲指數格式

我不能做的事情: 1)不能使用字符串,因爲在我使用的外部Jar中,變量被定義爲double。我無法改變字段的類型。大多數格式化程序使用String。 2)我無法控制除數的位數。在某些情況下,它也可能超過15位數。 3)所有處理對象轉換的代碼都是由jackson完成的,所以我沒有在那裏控制。

+0

你可以存儲'N',而不是'1/10萬N'在JSON,並處理其他地方的指數? – Gassa

+0

可能的重複:http://stackoverflow.com/q/7299576/1488799 – Gassa

+0

雙變量不能容納不同的字符串表示,它總是IEEE 64位浮點,所以別的東西是選擇代表你的double作爲字符串科學計數法。你提到變量在被轉換爲json時被送回0 - 你能否在json中驗證該值爲0,還是在json中爲1E-8,並在加載回雙變量時舍入爲0?這將有助於確定它變爲0的位置。 –

回答

相關問題