BigDecimal 的 toString() 方法將會(huì)把 BigDecimal 通過字符串的方式輸出。這個(gè)方法將會(huì)在必要的時(shí)候使用指數(shù)進(jìn)行輸出。
延邊朝鮮族ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!具體的轉(zhuǎn)換步驟是按照下面的步驟進(jìn)行轉(zhuǎn)換的:
BigDecimal的非標(biāo)度值的絕對(duì)值用字符’0’到’9’,沒有被轉(zhuǎn)換為一個(gè)字符串基地10零(除非它的值是零,在這種情況下,一個(gè)單一的’0’字符被使用)。
接下來,計(jì)算調(diào)整的指數(shù);這是無效的標(biāo)度,加上字符的轉(zhuǎn)換的標(biāo)度值,減1的次數(shù)。也就是說,-scale+(ulength-1),其中ulength是十進(jìn)制數(shù)字(其精度)的非標(biāo)度值的絕對(duì)值的長度。
如果該比例大于或等于零,并且調(diào)整的指數(shù)大于或等于-6,該號(hào)碼將被轉(zhuǎn)換為字符的形式,而無需使用指數(shù)表示法。
在這種情況下,如果該比例是零,則沒有小數(shù)點(diǎn)被添加和如果規(guī)模正小數(shù)點(diǎn)將被插入的規(guī)模指定的字符數(shù)的小數(shù)點(diǎn)的右邊。 ‘0’字符添加到轉(zhuǎn)換的非標(biāo)度值的左側(cè)是必要的。如果前面沒有字符,小數(shù)點(diǎn)這個(gè)插入之后再傳統(tǒng)的’0’字符作為前綴。
否則(即,如果該比例是負(fù)的,或經(jīng)調(diào)整的指數(shù)小于-6),該號(hào)碼將被采用指數(shù)表示法轉(zhuǎn)換為字符形式。在這種情況下,如果轉(zhuǎn)換后的BigInteger有一個(gè)以上的位小數(shù)點(diǎn)第一位數(shù)字后插入。
在字符形式的指數(shù),然后后綴轉(zhuǎn)換非標(biāo)度值(也許插入小數(shù)點(diǎn));這包含字母“E”后面立刻被調(diào)整的指數(shù)轉(zhuǎn)換為字符形式。
后者的基數(shù)為十,使用字符’0’到’9’,沒有前導(dǎo)零,并且總是由前綴符號(hào)字符’ – ‘(‘ u002D’),如果調(diào)整后的指數(shù)為負(fù)數(shù),否則為’+'(‘ u002B’)。
‘ – ‘最后,整個(gè)字符串由一個(gè)減號(hào)字符的前綴(‘ u002D’)如果非標(biāo)度值小于零。如果非標(biāo)度值為零或正數(shù)無符號(hào)字符作為前綴。
請(qǐng)參考 GitHub 上的源碼代碼中 bigDecimalWithoutScientificNotationTest():方法
https://github.com/cwiki-us-demo/java-tutorials/blob/master/java-numbers/src/test/java/com/ossez/maths/BigDecimalDemoUnitTest.java
() { String input = RandomStringUtils.() + + + + + + + + + + + + + + + + + + + + + + + + + + + BigDecimal bigNumber = BigDecimal(input)String numberStr = bigNumber.toString().info(numberStr)}
程序最后的輸出如下,將會(huì)輸出轉(zhuǎn)換后的字符串。
2020/02/25 09:43:29.595 [main] INFO c.ossez.maths.BigDecimalDemoUnitTest - 1503277200971234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234554324324362432767463726478326478326784637264783264736274673864736473246354635463546325645326456325463546536453654632546354653463254653453264564635463263453264
請(qǐng)參考 GitHub 上的源碼代碼中 bigDecimalScientificNotation():方法
https://github.com/cwiki-us-demo/java-tutorials/blob/master/java-numbers/src/test/java/com/ossez/maths/BigDecimalDemoUnitTest.java
程序最后的輸出如下,將會(huì)輸出轉(zhuǎn)換后的字符串。
2020/02/25 10:00:50.909 [main] INFO c.ossez.maths.BigDecimalDemoUnitTest - 8.31198E+14
2020/02/25 10:00:50.912 [main] INFO c.ossez.maths.BigDecimalDemoUnitTest - 831.198E+12
2020/02/25 10:00:50.912 [main] INFO c.ossez.maths.BigDecimalDemoUnitTest - 831198000000000
BigDecimal類有3個(gè) toString 方法,分別是 toString()、 toEngineeringString() 、toPlainString().
從 BigDecimal 的注釋中可以看到這3個(gè)方法的區(qū)別:
toString() – 在必要的時(shí)候使用科學(xué)計(jì)數(shù)法
toEngineeringString() 在必要的時(shí)候使用工程計(jì)數(shù)法。類似于科學(xué)計(jì)數(shù)法,只不過指數(shù)的冪都是3的倍數(shù),這樣方便工程上的應(yīng)用,因?yàn)樵诤芏鄦挝晦D(zhuǎn)換的時(shí)候都是10^3
toPlainString() – 不使用任何科學(xué)計(jì)數(shù)法。
不使用指數(shù) | 科學(xué)計(jì)數(shù)法 | 工程計(jì)數(shù)法 |
---|---|---|
2700 | 2.7 × 103 | 2.7 × 103 |
27000 | 2.7 × 10? | 27 × 103 |
270000 | 2.7 × 10? | 270 × 103 |
2700000 | 2.7 × 10? | 2.7 × 10? |
可以看到根據(jù)不同的輸出格式要求,BigDecimal 將會(huì)輸出不同格式的內(nèi)容。這個(gè)就便于我們?cè)诤竺娴目茖W(xué)計(jì)算中進(jìn)行轉(zhuǎn)換和輸出。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前文章:BigDecimal的toString()的使用方法-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://aaarwkj.com/article32/csospc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、定制網(wǎng)站、網(wǎng)站內(nèi)鏈、軟件開發(fā)、Google、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容