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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java numberformat异常_java – 解析货币值失败的NumberFormat

發(fā)布時(shí)間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java numberformat异常_java – 解析货币值失败的NumberFormat 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

使用Number格式的Currency實(shí)例進(jìn)行語(yǔ)法分析時(shí),為什么以下生成解析異常.

float f1 = 123.45678f;

Locale locFR = new Locale("fr");

NumberFormat[] nfa = new NumberFormat[4];

nfa[0] = NumberFormat.getInstance(); //default

nfa[1] = NumberFormat.getInstance(locFR); //FranceLocale

nfa[2] = NumberFormat.getCurrencyInstance(); //Default Currency

nfa[3] = NumberFormat.getCurrencyInstance(locFR); //French Currency

for (NumberFormat nf : nfa){

System.out.println("----------- " + nf.getClass().getName() + "-----------------------");

System.out.println("Default maximum fraction digits : " + nf.getMaximumFractionDigits());

System.out.println(nf.format(f1));

nf.setMaximumFractionDigits(5);

System.out.println("Maximum fraction digits updated to : " + nf.getMaximumFractionDigits());

System.out.println(nf.format(f1));

try{

nf.setMaximumFractionDigits(5);

System.out.println("parsed string: " + nf.parse("1234.56732"));

nf.setParseIntegerOnly(true);

System.out.println("after setParseIntegerOnly" + nf.parse("1234.567"));

}catch (Exception e){e.printStackTrace();};

以上的輸出是

----------- java.text.DecimalFormat-----------------------

Default maximum fraction digits : 3

123.457

Maximum fraction digits updated to : 5

123.45678

parsed string: 1234.56732

after setParseIntegerOnly1234

----------- java.text.DecimalFormat-----------------------

Default maximum fraction digits : 3

123,457

Maximum fraction digits updated to : 5

123,45678

parsed string: 1234

after setParseIntegerOnly1234

----------- java.text.DecimalFormat-----------------------

Default maximum fraction digits : 2

ú123.46

Maximum fraction digits updated to : 5

ú123.45678

java.text.ParseException: Unparseable number: "1234.56732"

at java.text.NumberFormat.parse(Unknown Source)

at TwoMinuteDrillTests.doExamples(TwoMinuteDrillTests.java:859)

at TwoMinuteDrillTests.main(TwoMinuteDrillTests.java:871)

----------- java.text.DecimalFormat-----------------------

Default maximum fraction digits : 2

123,46 ?

Maximum fraction digits updated to : 5

123,45678 ?

java.text.ParseException: Unparseable number: "1234.56732"

at java.text.NumberFormat.parse(Unknown Source)

at TwoMinuteDrillTests.doExamples(TwoMinuteDrillTests.java:859)

at TwoMinuteDrillTests.main(TwoMinuteDrillTests.java:871)

看起來(lái)解析數(shù)字很好但是在使用兩個(gè)貨幣實(shí)例時(shí)它很窒息:

nfa[2] = NumberFormat.getCurrencyInstance(); //Default Currency

nfa[3] = NumberFormat.getCurrencyInstance(locFR); //French Currency

還有一種方法可以找出for循環(huán)中正在處理的對(duì)象的類型是什么?我在上面的例子中使用了nf.getClass().getName(),但它總是返回泛型類型DecimalFormat.我希望能夠知道它是在處理貨幣實(shí)例還是數(shù)字實(shí)例.

提前致謝.

總結(jié)

以上是生活随笔為你收集整理的java numberformat异常_java – 解析货币值失败的NumberFormat的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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