切勿使用double来表示确切的金额

使用NumberFormat.虽然它确实处理了一些货币,但通常更容易剥离所有货币符号. NumberFormat将使用Locale来计算要使用的分隔符:

public static BigDecimal parse(final String amount, final Locale locale) throws ParseException {

final NumberFormat format = NumberFormat.getNumberInstance(locale);

if (format instanceof DecimalFormat) {

((DecimalFormat) format).setParseBigDecimal(true);

}

return (BigDecimal) format.parse(amount.replaceAll("[^\\d.,]",""));

}

这需要一个数量的字符串和Locale.然后它创建一个BigDecimal解析NumberFormat实例.它使用replaceAll和regex去除除数字之外的所有数字.然后,从数字然后解析它.

针对您的示例的快速演示:

public static void main(String[] args) throws ParseException {

final String dollarsA = "$199.00";

final String real = "R$399,00";

final String dollarsB = "£25.00";

final String tailingEuro = "90,83 €";

final String dollarsC = "$199.00";

final String dirham = "AED 449.00";

System.out.println(parse(dollarsA, Locale.US));

System.out.println(parse(real, Locale.FRANCE));

System.out.println(parse(dollarsB, Locale.US));

System.out.println(parse(tailingEuro, Locale.FRANCE));

System.out.println(parse(dollarsC, Locale.US));

System.out.println(parse(dirham, Locale.US));

}

输出:

199.00

399.00

25.00

90.83

199.00

449.00

我只是使用美国,小数是.和小数是的法国,但如果您愿意,可以使用正确的货币区域设置.

java多种货币的相互转换_使用java将不同的国家货币转换为双倍相关推荐

  1. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  2. java人民币换欧元_关于java:用于存储货币汇率的设计

    我已经开始了一个信贷管理的新项目,现在我不得不处理货币兑换. (例如,欧元->美元)因此,我做了一些头脑风暴,并得到了以下信息: 货币是抽象的,每种新货币都是接口的实现 建立了一个汇率类别,该汇 ...

  3. java是什么格式_是java格式

    错误:编码GBK的不可映射字符的解决办法 最近在重新补javaSE的基础,编辑器编写完代码以后,在控制台运行代码段的时候,出现了以下的错误提示:错误:编码GBK的不可映射字符 在通过查询谷哥和度娘以后 ...

  4. JAVA redis缓存过期_失效java服务器

    Java 并发/多线程教程--4并发模型 本系列译自jakob jenkov的Java并发多线程教程(本章节部分内容参考http://ifeve.com/并发编程模型),个人觉得很有收获.由于个人水平 ...

  5. java pdf插件下载_免费java pdf控件

    云原生的概念和理论体系非常的完备,but talk is cheap , show me the code ! 但是作为一名程序员,能动手的咱绝对不多BB,虽然talk并不cheap , 能跟不同层次 ...

  6. java 异常处理发生异常_处理Java中的异常

    java 异常处理发生异常 每个程序员都希望编写一个完美的程序. 也就是说,程序运行时没有任何障碍. 好吧,如果希望是马,乞g就会骑. 除了程序员的所有愿望之外,有时还会发生无法预料的情况. 在Jav ...

  7. java ee开发环境_设置Java EE 6开发环境

    java ee开发环境 本教程简要说明了如何设置典型的环境来开发基于Java EE 6的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. ...

  8. java runnable线程锁_多线程 java 同步 、锁 、 synchronized 、 Thread 、 Runnable

    线程 1 线程概述 1.1 什么是线程 v  线程是程序执行的一条路径, 一个进程中可以包含多条线程 v  一个应用程序可以理解成就是一个进程 v  多线程并发执行可以提高程序的效率, 可以同时完成多 ...

  9. 美国道富java开发面试题_从事Java开发五年,面试9家拿到7家offer,1096面试+67笔试题...

    个人情况 时间总是在不经意间流逝,我们也在人生的旅途上不断前行,转眼间在微软的美国总部工作近两年了.生活总给我们带来新的挑战,同时也有新的惊喜.这两年在陌生的国度里用着不太流利的英语和各种肤色的人交流 ...

  10. java 写字板源代码_基于JAVA的模拟写字板的设计与实现(含录像)

    基于的模拟写字板的设计与实现(含录像)(任务书,开题报告,中期检查表,外文翻译,毕业论文18800字,程序代码,答辩PPT,答辩视频录像) 摘要 目前,很多新的技术领域都涉及到了Java语言,Java ...

最新文章

  1. c#_Task用法总结
  2. Spring的新注解——Configuration、ComponentScan、Bean、Import、PropertySource || spring整合Junit分析
  3. dnn中个性化服务的使用
  4. 【春华秋实】.NET Core之只是多看了你一眼
  5. 理解C#中的委托与事件
  6. feather 设置坐标刻度_matplotlib学习记录:调整刻度范围和刻度标签
  7. 1、Keepalived及VRRP原理介绍
  8. vs2017_enterprise正式版离线安装包bt下载
  9. 使用C#创建一个简单的Windows服务
  10. 《高性能Linux服务器构建实战:系统安全、故障排查、自动化运维与集群架构》——3.3 DRBD的管理与维护...
  11. 鱼和熊掌兼得---STM32调试接口SW动态复用为GPIO的方法
  12. NOD32 病毒定义更新程序 v2.1
  13. Python求绝对值的三种方法
  14. 关于小米手机修改开发者模式中最小宽度无限重启的问题
  15. Provides transitive vulnerable dependency - Intellij IDEA
  16. leetcode.377. 组合总和 Ⅳ---dp问题
  17. JSON和异步AJAX请求和i18n学习笔记
  18. 职员信息管理系统php,员工信息管理系统(含附源代码).doc
  19. 批量修改文件名中的一部分,操作步骤
  20. AWS的ssl证书申请及使用

热门文章

  1. mp4转换gif格式,免费在线转换
  2. 未来已来:数字化时代的商业模式创新-读书笔记
  3. Edison C++编程笔记
  4. 万维网联盟(W3C)创立了 WWW 标准
  5. 武汉大学.计算机学院.密码学,密码学教学课件-武汉大学计算机学院.ppt
  6. H5使用photo-sphere-viewer.js实现360°全景
  7. BUGKU-CTF-MISC-一个普通的压缩包
  8. 【Java】线程插队
  9. SQL SERVER MONTH函数
  10. java程序设计六大原则