我正在計算高精度小數精度BigDecimal對象。將大數小數轉換爲無指數格式的雙精度
我正在使用需要雙參數的第三方庫。當我嘗試將其轉換爲double時,我以指數格式獲取值而不是小數。
BigDecimal 0.000035000000000 Double 3.5E-5
BigDecimal bd;
BigDecimal(0.0000349999999995631583260546904057264328002929687500);
bd= bd.setScale(15,BigDecimal.ROUND_CEILING);
Log.i("bd","bd "+bd.toPlainString());
Log.i("bd","double"+bd.doubleValue());
我已經找到了點,但只在字符串格式轉換這個3.5E-5的值作爲正確小數的各種方式。而我需要在雙
能夠在沒有指數來獲得String對象但不是在雙
DecimalFormat df = new DecimalFormat("#");
df.setMaximumFractionDigits(16);
String test=df.format(bd,doubleValue());
System.out.println("op2 "+test);
Double test1=Double.parseDouble(test);
System.out.println("op2 "+test1);
輸出OP2 0.000035 OP2 3.5E-5
我的價值因爲我無法控制第三方庫,所以需要雙倍的價值才能找到解決方案,因此很掙扎。
Refferred鏈接
Format BigDecimal without scientific notation with full precission
Converting exponential value in java to a number format
Conversion from exponential form to decimal in Java
How to resolve a Java Rounding Double issue
How to Avoid Scientific Notation in Double?
我的問題是不同的,那麼這些鏈接,我不希望雙倍作爲字符串沒有指數,而是我希望它只有雙格式。
編輯
如果傳遞的雙重價值指數格式,基於NDK libary將進一步爲此目的,這將導致inmore小數點和較大的指數值上計算。所以,我想通過一個簡單的雙沒有E
我想這只是打印引起這個值的值。該值是一個原始的雙。 –
@ScaryWombat我檢查了它,當我調試的時候,雙重對象顯示了E格式的值 –
我的觀點是如果第三方庫期望一個原語double作爲參數,那麼這正是你給他們的 –