使用Number格式的Currency实例进行语法分析时,为什么以下生成解析异常.

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)

看起来解析数字很好但是在使用两个货币实例时它很窒息:

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

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

还有一种方法可以找出for循环中正在处理的对象的类型是什么?我在上面的例子中使用了nf.getClass().getName(),但它总是返回泛型类型DecimalFormat.我希望能够知道它是在处理货币实例还是数字实例.

提前致谢.

java numberformat异常_java – 解析货币值失败的NumberFormat相关推荐

  1. java runnable 异常_Java实现多线程异常捕获Runnable的案例

    这篇文章主要介绍了详解Java中多线程异常捕获Runnable的实现的相关资料,希望通过本文能帮助到大家,让大家理解掌握这样的知识,需要的朋友可以参考下 详解Java中多线程异常捕获Runnable的 ...

  2. java 编写异常_Java基础编程之异常处理

    Java异常类是对于程序中可能出现的错误或者异常的一种处理方式.在设计程序的过程中,对于可能出现的异常错误,比如说用户输入错误,设备错误,磁盘满了或者代码错误等等,通常采用异常处理的方式来进行处理可能 ...

  3. java runtime 异常_Java中RuntimeException和Exception

    在java的异常类体系中,Error和RuntimeException是非检查型异常,其他的都是检查型异常. 所有方法都可以在不声明throws的情况下抛出RuntimeException及其子类 不 ...

  4. java 多层异常_Java多层嵌套异常处理的基本流程

    异常是程序中的一些错误,但并不是所有的错误都是异常,错误有时候是可以避免的.异常的对象有两个来源,一是Java运行时环境自动抛出系统生成的异常,而不管你是否愿意捕获和处理,它总要被抛出!比如除数为0的 ...

  5. linux java url 异常_java异常处理总结

    找到一个关于异常总结的很详细的文章,分享下.异常在我们编程中很重,在适当的位置,合理的处理或者抛出异常,对程序来说至关重要. 转:异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C开 ...

  6. java 到异常_java编程中遇到的异常以及异常的一些处理

    n 异常的概念 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户? 比如除法运算.读写文件操作,都可能 ...

  7. JAVA语言异常_Java语言中常用异常类EoFException是用来处理( )异常的类_学小易找答案...

    [填空题]Java语言中常用异常类ClassNotFoundException是用来处理 ( )的异常的类 [填空题]Java语言声明 ( ) 类为会产生"严重错误"的类 [简答题 ...

  8. java numberformat异常_Java NumberFormat格式化float类型的bug

    首先,这个NumberFormat这个类,可以格式化各种数字.你只要稍微设置一下,结果还是很理性的. 但是,他有那么一丢丢的bug,不知道你知道不? /** * 2.3F经过格式化,竟然变成2.99啦 ...

  9. java通用异常_Java常用异常整理

    填坑,整理下Java的常用异常.正确使用异常在实际编码中非常重要,但面试中的意义相对较小,因为对异常的理解和应用很难通过几句话或几行代码考查出来,不过我们至少应答出三点:异常类的继承关系.常用异常类. ...

  10. java property异常_Java常见的异常和解决的办法

    Java程序设计中我们经常会遇到异常,遇到异常不要浮躁,找到问题的原因解决是很容易的.我们整理了一些异常和解决的方法供大家参考. 1.java.lang.IllegalStateException: ...

最新文章

  1. Java机器学习库ML之三Sampling(采样)
  2. 日历,日期类(copy)
  3. python自学_为什么要选择Python怎样系统的自学并快速学习Python
  4. P2801 教主的魔法
  5. Ubuntu 16.04 下安装Firefox的Flash插件
  6. iostat 命令查看linux磁盘I/O
  7. 论文阅读:SSD: Single Shot MultiBox Detector
  8. 左侧固定,右侧自适应的布局方式(新增评论区大佬教的方法)
  9. 项目期复习:JS操作符,弹窗与调试,凝视,数据类型转换
  10. Python数据结构-列表
  11. Recorder.js HTML5+JS实现网页录音
  12. 解决eclipse 错误: 找不到或无法加载主类
  13. 北京大学计算机学硕考研分数线,2020北京大学研究生分数线汇总(含2016-2020历年复试)...
  14. js数组操作(push,pop,shift,unshift,slice,splice,concat,sort)
  15. element table 表格实现上移、下移
  16. 如何控制苹果Mac电池健康管理功能?
  17. Augustus操作指南
  18. 【基于RT-Thread+RA6M4的智能鱼缸系统设计之鱼我所欲也】
  19. 中国石油大学(北京)-《 油气藏经营管理》第二阶段在线作业
  20. 结构-行为-样式-angularJs 指令实现滚动文字

热门文章

  1. lisp 天正标高_建筑设计选择 CAD 和天正画图哪个更好?
  2. java 回调函数的写法
  3. SQL Server之增删改查
  4. 飞利浦DR与PACS进行worklist多部位登记方法分享
  5. QT设计师(designer)下载安装
  6. RS485电路设计原理图
  7. Shell nohup 命令详解
  8. 解决Cannot resolve com.lowagie:itext:2.1.7.js6以及.net.jf.jasperresport下com.lowagie:itext标红的问题
  9. PMP第六版十五至尊图记忆方法
  10. 【Au】如何消去视频音频中的人声,提取伴奏