BigDecimal用法总结
BigDecimal用法总结
BigDecimal常用于金额的计算,下面总结下这次项目中BigDecimal的用法。
1.加减乘除
2.设置精度
3.取反
加减乘除分别调用函数
[java] view plain copy
- public BigDecimal add(BigDecimal value);
- public BigDecimal subtract(BigDecimal value);
- public BigDecimal multiply(BigDecimal value);
- public BigDecimal divide(BigDecimal value);
举例:
[java] view plain copy
- BigDecimal a=new BigDecimal(10.0);
- BigDecimal b=new BigDecimal(9.1);
- System.out.println(a.subtract(b));
精度设置,为什么会设置精度,给大家看个效果
代码如下:
[java] view plain copy
- BigDecimal abig=new BigDecimal(10.0);
- BigDecimal bbig=new BigDecimal(9.1);
- BigDecimal cbig=new BigDecimal(8.9);
- System.out.println(abig.subtract(bbig));
- System.out.println(abig.subtract(cbig));
结果如下:
[java] view plain copy
- 0.9000000000000003552713678800500929355621337890625
- 1.0999999999999996447286321199499070644378662109375
并不是我们希望看到的0.9和1.1,原因就是转成二进制的时候会有精度问题,导致这样的结果。所以我们可以在运算的时候加精度,也可以在实例化BigDecimal的时候用字符串。
设置精度的方法:
[java] view plain copy
- System.out.println(abig.subtract(bbig).setScale(2, BigDecimal.ROUND_HALF_UP));
- System.out.println(abig.subtract(cbig).setScale(2, BigDecimal.ROUND_HALF_UP));
这样设置两位精度就可以啦
[java] view plain copy
- 0.90
- 1.10
字符串实例化的方法:
[java] view plain copy
- BigDecimal abig=new BigDecimal("10.0");
- BigDecimal bbig=new BigDecimal("9.1");
- BigDecimal cbig=new BigDecimal("8.9");
取反
因为Bigdecimal是无法直接用+-*/这些符号进行计算的,所以取反的时候也需要一个单独的方法来实现:
[java] view plain copy
- System.out.println(abig.negate());
这样就会拿到它的相反数了:
[java] view plain copy
- -10.0
这些是这次项目中用到的点
BigDecimal用法总结的更多相关文章
- BigDecimal用法详解(转)
BigDecimal用法详解 http://www.cnblogs.com/linjiqin/p/3413894.html 一.简介Java在java.math包中提供的API类BigDecim ...
- BigDecimal 用法详解
BigDecimal简介 BigDecimal用法: BigDecimal的构造方法 BigDecimal常用方法描述 BigDecimal比较 BigDecimal总结 BigDecimal简介 J ...
- Bigdecimal用法
一.简介 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更 ...
- BigDecimal用法详解
一.简介Java在java.math包中提供的API类BigDecimal,用来对超过16位有效 位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更 ...
- 学习BigDecimal用法
一.简介 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更 ...
- JAVA BigDecimal 用法
一.BigDecimal 的加减乘除 BigDecimal bignum1 = new BigDecimal("10"); BigDecimal bignum2 = new Big ...
- BigDecimal 用法总结
转载请注明出处: 目录 1.BigDecimal 简介 2.构造BigDecimal的对象 3.常用方法总结 4.divide方法使用 5.setScale 方法使用 6.BigDecimal 数据库 ...
- BigDecimal简单说
1) 浮点数的舍弃规则: 假设小数点后保留两位 RoundingMode.CEILING:向正无穷大的方向舍入: 1.245 → 1.25 -1.245 → -1.24 RoundingMode ...
- Java基础知识【下】( 转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
随机推荐
- PythonStudy——Python 内置函数 Built-in function
内置方法:Python中声明每一个类系统都会加上一些默认内置方法,提供给系统调用该类的对象时使用.比如需要实例化一个对象时,需要调用该类的init方法:使用print去打印一个类时,其实调用的是str ...
- uml类图符号
符号及实例参照:http://www.blogjava.net/cnfree/archive/2012/10/30/390457.html https://blog.csdn.net/l_nan/ar ...
- [JAVA]JAVA遍历Map的几种方式
//遍历key for (String key : dic.keySet() ) { System.out.println(key + dic.get(key)); } //遍历values for ...
- Zookeeper 集群搭建--单机伪分布式集群
一. zk集群,主从节点,心跳机制(选举模式) 二.Zookeeper集群搭建注意点 1.配置数据文件 myid 1/2/3 对应 server.1/2/3 2.通过./zkCli.sh -serve ...
- OpenStack上搭建Q版的公共环境准备(step1)
vmware14 centos7.5minimal版 controller1节点虚拟硬件配置: CPU:1颗2核 Memory:2G 硬盘:20G 网卡: VMnet1(仅主机模式):关闭DHCP,手 ...
- awk字符串操作(字符串链接、传入传出shell变量)
1.awk基础 awk的环境变量及其意义 https://blog.csdn.net/snowpay/article/details/52451718 linux awk命令详解 https:// ...
- oracle数据库报错ora-01653表空间扩展失败解决方案
1)ora-01653错误截图: 可以看到有两张表的insert受到了影响,都是在USERS表空间里.用以下SQL查看表空间使用情况: "表空间大小(M)",(a.bytes &q ...
- iterator简单描述
Item 26. Prefer iterator to const iterator, reverse_iterator, and const_reverse_iterator. 上面一段话,是< ...
- 版本控制(svn、Git)环境创建
1.SVN 2.Git last 版本控制工具应该具备的功能: 协同修改: 数据备份: 版本管理: 权限控制: 历史记录:查看修改人.修改时间.修改内容…… 分支管理:开发团队在工作过程中多条产品线同 ...
- MSB8013
解决方案: 去掉勾选