java多种货币的相互转换_使用java将不同的国家货币转换为双倍
切勿使用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将不同的国家货币转换为双倍相关推荐
- java项目----教务管理系统_基于Java的教务管理系统
java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...
- java人民币换欧元_关于java:用于存储货币汇率的设计
我已经开始了一个信贷管理的新项目,现在我不得不处理货币兑换. (例如,欧元->美元)因此,我做了一些头脑风暴,并得到了以下信息: 货币是抽象的,每种新货币都是接口的实现 建立了一个汇率类别,该汇 ...
- java是什么格式_是java格式
错误:编码GBK的不可映射字符的解决办法 最近在重新补javaSE的基础,编辑器编写完代码以后,在控制台运行代码段的时候,出现了以下的错误提示:错误:编码GBK的不可映射字符 在通过查询谷哥和度娘以后 ...
- JAVA redis缓存过期_失效java服务器
Java 并发/多线程教程--4并发模型 本系列译自jakob jenkov的Java并发多线程教程(本章节部分内容参考http://ifeve.com/并发编程模型),个人觉得很有收获.由于个人水平 ...
- java pdf插件下载_免费java pdf控件
云原生的概念和理论体系非常的完备,but talk is cheap , show me the code ! 但是作为一名程序员,能动手的咱绝对不多BB,虽然talk并不cheap , 能跟不同层次 ...
- java 异常处理发生异常_处理Java中的异常
java 异常处理发生异常 每个程序员都希望编写一个完美的程序. 也就是说,程序运行时没有任何障碍. 好吧,如果希望是马,乞g就会骑. 除了程序员的所有愿望之外,有时还会发生无法预料的情况. 在Jav ...
- java ee开发环境_设置Java EE 6开发环境
java ee开发环境 本教程简要说明了如何设置典型的环境来开发基于Java EE 6的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. ...
- java runnable线程锁_多线程 java 同步 、锁 、 synchronized 、 Thread 、 Runnable
线程 1 线程概述 1.1 什么是线程 v 线程是程序执行的一条路径, 一个进程中可以包含多条线程 v 一个应用程序可以理解成就是一个进程 v 多线程并发执行可以提高程序的效率, 可以同时完成多 ...
- 美国道富java开发面试题_从事Java开发五年,面试9家拿到7家offer,1096面试+67笔试题...
个人情况 时间总是在不经意间流逝,我们也在人生的旅途上不断前行,转眼间在微软的美国总部工作近两年了.生活总给我们带来新的挑战,同时也有新的惊喜.这两年在陌生的国度里用着不太流利的英语和各种肤色的人交流 ...
- java 写字板源代码_基于JAVA的模拟写字板的设计与实现(含录像)
基于的模拟写字板的设计与实现(含录像)(任务书,开题报告,中期检查表,外文翻译,毕业论文18800字,程序代码,答辩PPT,答辩视频录像) 摘要 目前,很多新的技术领域都涉及到了Java语言,Java ...
最新文章
- c#_Task用法总结
- Spring的新注解——Configuration、ComponentScan、Bean、Import、PropertySource || spring整合Junit分析
- dnn中个性化服务的使用
- 【春华秋实】.NET Core之只是多看了你一眼
- 理解C#中的委托与事件
- feather 设置坐标刻度_matplotlib学习记录:调整刻度范围和刻度标签
- 1、Keepalived及VRRP原理介绍
- vs2017_enterprise正式版离线安装包bt下载
- 使用C#创建一个简单的Windows服务
- 《高性能Linux服务器构建实战:系统安全、故障排查、自动化运维与集群架构》——3.3 DRBD的管理与维护...
- 鱼和熊掌兼得---STM32调试接口SW动态复用为GPIO的方法
- NOD32 病毒定义更新程序 v2.1
- Python求绝对值的三种方法
- 关于小米手机修改开发者模式中最小宽度无限重启的问题
- Provides transitive vulnerable dependency - Intellij IDEA
- leetcode.377. 组合总和 Ⅳ---dp问题
- JSON和异步AJAX请求和i18n学习笔记
- 职员信息管理系统php,员工信息管理系统(含附源代码).doc
- 批量修改文件名中的一部分,操作步骤
- AWS的ssl证书申请及使用