日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

【Java】区分BigDecimal的toString()和toPlainString()

發(fā)布時(shí)間:2025/3/15 java 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Java】区分BigDecimal的toString()和toPlainString() 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

求值語(yǔ)句

為了能表示出科學(xué)計(jì)數(shù)法,我們得讓數(shù)小一點(diǎn):

BigDecimal num = new BigDecimal(0.2333).pow(20);

打印結(jié)果

System.out.println(num); 2.28189037167401120969664016458058704445821447776153697856333722521431496331550551213930891906957487435112104808347862419891420033162248142531663995155772279146232315410060206987151178648426698855546081020777110688844170619669193518453985280966919855312604013430815833563803446476005419063873594466971526322215177750276141448913214334808975521236293623113834028980688572444044246581431849340824046219938314943100698334559217720778436613420267026603092024290999790614071820410967350767900092513471798538644190754888725556844272602124114705649986642100894001740207945946131697703242257894368252834211931168108684805772879141748782976829469911671275574176661389794305239001858006008883235021362729155223312931934657673225453759580180785170264139962848926240405883081486320326522336957649286875366094925648693739077878530704550560566747517994737139860236090744552245807066682260105331670524231711427517062910685789869039060383532495613756103646363461215507160773269224241213935868860166499926337883991102182710785104859748632046196649414415702494807192124426364898681640625E-13

toString()打印結(jié)果

結(jié)果是一樣的,因?yàn)槲覀兤鋵?shí)也知道在打印num的時(shí)候其實(shí)默認(rèn)就是打印num.toString()啦!

System.out.println(num.toString()); 2.28189037167401120969664016458058704445821447776153697856333722521431496331550551213930891906957487435112104808347862419891420033162248142531663995155772279146232315410060206987151178648426698855546081020777110688844170619669193518453985280966919855312604013430815833563803446476005419063873594466971526322215177750276141448913214334808975521236293623113834028980688572444044246581431849340824046219938314943100698334559217720778436613420267026603092024290999790614071820410967350767900092513471798538644190754888725556844272602124114705649986642100894001740207945946131697703242257894368252834211931168108684805772879141748782976829469911671275574176661389794305239001858006008883235021362729155223312931934657673225453759580180785170264139962848926240405883081486320326522336957649286875366094925648693739077878530704550560566747517994737139860236090744552245807066682260105331670524231711427517062910685789869039060383532495613756103646363461215507160773269224241213935868860166499926337883991102182710785104859748632046196649414415702494807192124426364898681640625E-13

toPlainString()打印結(jié)果

這次,可有點(diǎn)不同啦!

System.out.println(num.toPlainString()); 0.000000000000228189037167401120969664016458058704445821447776153697856333722521431496331550551213930891906957487435112104808347862419891420033162248142531663995155772279146232315410060206987151178648426698855546081020777110688844170619669193518453985280966919855312604013430815833563803446476005419063873594466971526322215177750276141448913214334808975521236293623113834028980688572444044246581431849340824046219938314943100698334559217720778436613420267026603092024290999790614071820410967350767900092513471798538644190754888725556844272602124114705649986642100894001740207945946131697703242257894368252834211931168108684805772879141748782976829469911671275574176661389794305239001858006008883235021362729155223312931934657673225453759580180785170264139962848926240405883081486320326522336957649286875366094925648693739077878530704550560566747517994737139860236090744552245807066682260105331670524231711427517062910685789869039060383532495613756103646363461215507160773269224241213935868860166499926337883991102182710785104859748632046196649414415702494807192124426364898681640625

總結(jié)

對(duì)于一個(gè)數(shù)值可能很小的BigDecimal對(duì)象來(lái)說(shuō),使用toString()可能由于打印的數(shù)值太小而打印其科學(xué)計(jì)數(shù)法表示,而使用toPlainString()才能打印完整的數(shù)值。

完整代碼

import java.math.BigDecimal;public class BigDecimalTest {public static void main(String[] args) {BigDecimal num = new BigDecimal(0.2333).pow(20);System.out.println(num);System.out.println(num.toString());System.out.println(num.toPlainString());} }

說(shuō)明

例子的結(jié)果不能不夠小,否則可能誤認(rèn)為三者一樣。

比如最早我測(cè)的是這個(gè):

import java.math.BigDecimal;public class BigDecimalTest {public static void main(String[] args) {BigDecimal num = new BigDecimal(0.66).pow(10);System.out.println(num);System.out.println(num.toString());System.out.println(num.toPlainString());} }

但結(jié)果很悲催:

>java BigDecimalTest 0.01568336880910796514692485387380358722432090658674607795185185558463356941593280438333875994123155412243735195834705140991618787447848128774946858219534786702323782812590762928242630260751971484116602400344065713771468254349752623195976497313013575753886310637762485552492886146251661530527797289372428420293315321412564193962492477328625977419079453856979274761289232833572242408303626740680597755011834774326410628545344183904639899408459342093849694664301730220414247643012754939939265054482664396573454723693430423736572265625 0.01568336880910796514692485387380358722432090658674607795185185558463356941593280438333875994123155412243735195834705140991618787447848128774946858219534786702323782812590762928242630260751971484116602400344065713771468254349752623195976497313013575753886310637762485552492886146251661530527797289372428420293315321412564193962492477328625977419079453856979274761289232833572242408303626740680597755011834774326410628545344183904639899408459342093849694664301730220414247643012754939939265054482664396573454723693430423736572265625 0.01568336880910796514692485387380358722432090658674607795185185558463356941593280438333875994123155412243735195834705140991618787447848128774946858219534786702323782812590762928242630260751971484116602400344065713771468254349752623195976497313013575753886310637762485552492886146251661530527797289372428420293315321412564193962492477328625977419079453856979274761289232833572242408303626740680597755011834774326410628545344183904639899408459342093849694664301730220414247643012754939939265054482664396573454723693430423736572265625

這很容易令人迷惑噠~

總結(jié)

以上是生活随笔為你收集整理的【Java】区分BigDecimal的toString()和toPlainString()的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。