基于Bigdecimal科學計數問題
Bigdecimal科學計數問題
今天做后臺報表導出功能數據在小數點八位之后會出現 0E-8類似的問題
主要是數據轉換問題
一行代碼輕松搞定
new BigDecimal (String.valueOf(value))).toPlainString()
Bigdecimal與科學計數法(轉String)問題
BigDecimal是處理高精度的浮點數運算的常用的一個類
當需要將BigDecimal中保存的浮點數值打印出來,特別是在頁面上顯示的時候,就有可能遇到預想之外的科學技術法表示的問題。
一般直接使用 BigDecimal.toString()方法即可以完成浮點數的打印。但是,toString()方法輸出的字符串并不能保證不是科學計數法。
比如直接這么寫:
System.out.println( new BigDecimal("0.000000000000").toString());
程序的輸出結果為:
0E-12
這是我們不希望出現的結果。
正確的寫法:
System.out.println( new BigDecimal("0.000000000000").toPlainString());
程序輸出的結果為:
0.000000000000
如果我們希望去除末尾多余的0,那么我們應該這么寫:
System.out.println( new BigDecimal("0.000000000000").stripTrailingZeros().toPlainString());
其中,stripTrailingZeros()函數就是用于去除末尾多余的0的
程序輸出的結果為:
0
測試截圖
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringBoot教程_創(chuàng)建第一個SpringBoot項目
這篇文章主要介紹了SpringBoot教程_創(chuàng)建第一個SpringBoot項目,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06Intelli IDEA安裝Scala插件并安裝Scala軟件和配置環(huán)境變量的詳細教程
這篇文章主要介紹了Intelli IDEA安裝Scala插件并安裝Scala軟件和配置環(huán)境變量的詳細教程,需要的朋友可以參考下2020-10-10