Java中涉及到金钱计算方法
java中涉及到浮点计算,就会有误差,
float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用 java.math.BigDecimal
public class MoneyTest{ public static void main(String[] args) { System.out.println(2.00 - 1.10);// 0.8999999999999999 System.out.println(2.00D - 1.10D);// 0.8999999999999999 System.out.println(2.00F - 1.10F);// 0.9 System.out.println(Double.toString(2.00D));// 2.0 System.out.println(BigDecimal.valueOf(2.00).subtract(BigDecimal.valueOf(1.10)));// 0.9 System.out.println(BigDecimal.valueOf(2.00F).subtract(BigDecimal.valueOf(1.10F)));// 0.899999976158142 System.out.println(BigDecimal.valueOf(2.00D).subtract(BigDecimal.valueOf(1.10D)));// 0.9 System.out.println(new BigDecimal("2.00").subtract(new BigDecimal("1.10")));// 0.90 } }
在这里,我介绍一种方便计算的方式:将单位 : 元 -> 分
这时,计算时 都是整型在参与计算,大大减少使用BigDecimal计算时带来的麻烦。
/*** 将元变成分 如 0.01元 变成 1分* * @param str* 金额(元)* @return*/public static String moneyYuanToFen(String str) {
Double num = Double.parseDouble(str);
int result = (int) (num * 100);
return String.valueOf(result);
}/*** 将分变成元 100分 -> 1元* * @param amount* 金额(分)* @return*/public static String moneyFenToYuan(Long amount) {return new BigDecimal(amount).divide(new BigDecimal(100)).setScale(2).toString();}
Java中涉及到金钱计算方法相关推荐
- java 金钱计算_Java中涉及到金钱计算方法的两种方式
一.不直接使用float和double计算金钱的原因 java中涉及到浮点计算,就会有误差, float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用 java.math.Big ...
- Java中的IO技术使用总结
请尊重他人劳动成果,请勿随意剽窃,转载请注明,谢谢!转载请注明出处:http://blog.csdn.net/evan_man/article/details/51983126 Ja ...
- java中excel上传_java对excel表格的上传和下载处理
Excel表格文件的上传和下载,java中涉及到文件肯定会有io流的知识. 而excel文件就要涉及到poi技术,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为 ...
- JAVA中两个char类型相加_【技术干货】Java 面试宝典:Java 基础部分(1)
海牛学院的 | 第 616 期 本文预计阅读 |18 分钟 Java 基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法, ...
- java中创建线程的四种方式及线程池详解
众所周知,我们在创建线程时有四种方法可以用,分别是: 1.继承Thread类创建线程 2.实现Runnable接口创建线程 3.使用Callable和Future创建线程 4.使用线程池创建(使用ja ...
- JavaSE基础知识(九)--Java中的方法重载(涉及基本类型的重载)
Java SE 是什么,包括哪些内容(九)? 本文内容参考自Java8标准 Java中的基本类型有一个特性:它能自动从一个"较小"的类型转换成"较大"的类型! ...
- java 中FreeMaker的使用(excel、word),涉及解压缩
java 中FreeMaker的使用(excel.word),涉及解压缩 最近在项目中,涉及到很多(word.excel)导入.导出的功能,word 版的搞得好久 涉及到单选框 . 附件.文本.图片. ...
- java中hashcode_浅谈Java中的Hash值
1.Hash值有什么用? HashMap.HashTable.HashSet,所以涉及到使用Hash值进行优化存储的地方,都会用到HashCode.HashCode是Key,这种计算为提高计算的性能. ...
- java中hashmap_Java HashMap – Java中的HashMap
java中hashmap Java HashMap is one of the most popular Collection classes in java. Java HashMap is Has ...
- Java中存储金额用什么数据类型?
很早之前, 记得一次面试, 面试官问存储金钱用什么数据类型? 当时只知道8种数据类型(boolean, byte, short, int, long, float, double, char)的我, ...
最新文章
- 当outlook打开附件的EXCEL表报出 文件已经损坏 但别人能打开时
- 计算机图形学_2020图灵奖重磅发布!两位计算机图形学先驱获奖
- Android 性能优化 之谈谈Java内存区域
- c++-内存管理-G4.9
- 20应用统计考研复试要点(part7)--统计学
- fluidity详解
- 修改现有站点的主机标头
- Django JWT认证实现
- Android仿华为天气绘制刻度盘
- 自定义Dialog宽度占满屏幕
- Redis BigKey
- python输入的字符串转换为对应的数字类型_Psychopy | 第1期:数据类型及运算符
- Firefox和Chrome的选择
- Java学习资料汇总
- Cadence orcad 使用MySQL搭建元件数据库及实例数据库下载
- 微软.NET设计上的一个错误(从.NET1.1--4.0),不知道以后.NET会不会修复这个错误...
- Ignite(四)-遇到的问题
- Noob 靶场渗透记录
- 从微软官网下载win10镜像.iso文件
- MFC对话框中使用GDI画二维码
热门文章
- 能不能过?(C++)
- 编写算法将二叉树中所有结点的左、右子树相互交换
- Android开发实践:设计安卓应用以计算BMI指数
- 一元线性回归模型系数、方差估计、检验回归效果显著性,b的置信区间,Y约为X的指数函数时,求Y关于x的回归方程
- 【JZOJ B组】【NOIP2013模拟】Heaven Cow与God Bull
- 在线PHP源码混淆、加密
- css-3d旋转(三维立体效果)
- 揭秘腾讯代码管理核心—工蜂Git系统架构
- TscanCode代码扫描工具
- 问题解决:error CS0234: 命名空间“System”中不存在类型或命名空间名“CodeDom”/“ComponentModel”(是否缺少程序集引用?)