基于Bigdecimal科學(xué)計(jì)數(shù)問(wèn)題
Bigdecimal科學(xué)計(jì)數(shù)問(wèn)題
今天做后臺(tái)報(bào)表導(dǎo)出功能數(shù)據(jù)在小數(shù)點(diǎn)八位之后會(huì)出現(xiàn) 0E-8類似的問(wèn)題
主要是數(shù)據(jù)轉(zhuǎn)換問(wèn)題
一行代碼輕松搞定
new BigDecimal (String.valueOf(value))).toPlainString()
Bigdecimal與科學(xué)計(jì)數(shù)法(轉(zhuǎn)String)問(wèn)題
BigDecimal是處理高精度的浮點(diǎn)數(shù)運(yùn)算的常用的一個(gè)類
當(dāng)需要將BigDecimal中保存的浮點(diǎn)數(shù)值打印出來(lái),特別是在頁(yè)面上顯示的時(shí)候,就有可能遇到預(yù)想之外的科學(xué)技術(shù)法表示的問(wèn)題。
一般直接使用 BigDecimal.toString()方法即可以完成浮點(diǎn)數(shù)的打印。但是,toString()方法輸出的字符串并不能保證不是科學(xué)計(jì)數(shù)法。
比如直接這么寫:
System.out.println( new BigDecimal("0.000000000000").toString());
程序的輸出結(jié)果為:
0E-12
這是我們不希望出現(xiàn)的結(jié)果。
正確的寫法:
System.out.println( new BigDecimal("0.000000000000").toPlainString());
程序輸出的結(jié)果為:
0.000000000000
如果我們希望去除末尾多余的0,那么我們應(yīng)該這么寫:
System.out.println( new BigDecimal("0.000000000000").stripTrailingZeros().toPlainString());
其中,stripTrailingZeros()函數(shù)就是用于去除末尾多余的0的
程序輸出的結(jié)果為:
0
測(cè)試截圖
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot部署到騰訊云的實(shí)現(xiàn)示例
記錄一下自己第一次部署springboot項(xiàng)目,本文主要介紹了SpringBoot部署到騰訊云的實(shí)現(xiàn)示例,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08JAVA對(duì)稱加密算法PBE定義與用法實(shí)例分析
這篇文章主要介紹了JAVA對(duì)稱加密算法PBE定義與用法,結(jié)合實(shí)例形式分析了JAVA對(duì)稱加密算法PBE的概念、原理、定義及使用方法,需要的朋友可以參考下2019-09-09SpringBoot教程_創(chuàng)建第一個(gè)SpringBoot項(xiàng)目
這篇文章主要介紹了SpringBoot教程_創(chuàng)建第一個(gè)SpringBoot項(xiàng)目,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06Spring MVC學(xué)習(xí)教程之視圖深入解析
這篇文章主要給大家介紹了關(guān)于Spring MVC學(xué)習(xí)教程之視圖解析的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或使用spring mvc具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧2018-11-11Intelli IDEA安裝Scala插件并安裝Scala軟件和配置環(huán)境變量的詳細(xì)教程
這篇文章主要介紹了Intelli IDEA安裝Scala插件并安裝Scala軟件和配置環(huán)境變量的詳細(xì)教程,需要的朋友可以參考下2020-10-10Redisson延遲隊(duì)列執(zhí)行流程源碼解析
這篇文章主要為大家介紹了Redisson延遲隊(duì)列執(zhí)行流程源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09