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基础相关的内容,原来因为在写这一个章节的时候没 ...
随机推荐
- linux --- 1.初始linux
一.计算机简单认识 1.服务器的硬件 ①输入单元:键盘,鼠标,读卡器,触摸屏,手写板 ②主机部分:主板,cpu,显卡,内存条,硬盘,网卡,声卡,电池,散热器 ③输出单元:显示器,打印机 2.内存,cp ...
- ORM操作 数据库外键 一对多
创建外键: from django.db import models class usergroup(models.Model): uid = models.AutoField(primary_key ...
- android 监控应用进程
在android系统中,怎么监控应用的进程改变及消亡呢? 至于监控应用进程能做什么,这个就不多说了,你懂的. 在android系统中有这么一个类ActivityManagerNative,看名称就大概 ...
- Android开发 :androidstudio device offline
使用设备调试的时候,偶尔的就会遇到androidstudio device offline,尽管尝试开启/关闭 USB调试 .都无济于事. 如果PC安装了360手机助手就好办了(我的360手机助手 ...
- bzoj5048: 塌陷的牧场
Description 农夫小Q将他的奶牛们饲养在一个长n宽m的矩形网格牧场中.行从上到下依次编号为1到n,列从左往右依次编号为1 到m.为了防止奶牛们逃跑,小Q在牧场外圈安装了一排电网,只要奶牛走出 ...
- VS2017调试出现异常浏览器直接关闭的解决办法
最近升级完VS2017后,出现了各种不适应. 1.F5调试时总是会打开新的浏览器,过去都是在现有窗口右侧打开新的新的浏览器标签页. 这一点就让很不爽,勉强接受吧,继续调试代码但是还有第二种情况. 2. ...
- 微信小程序精品demo
http://www.jianshu.com/p/0ecf5aba79e1 感谢笔者的分享!
- JS类型转换(强制和自动的规则)
显式转换 通过手动进行类型转换,Javascript提供了以下转型函数: 转换为数值类型:Number(mix).parseInt(string,radix).parseFloat(string) 转 ...
- Linux权限管理之ACL权限
注:转载自:https://www.cnblogs.com/ysocean/p/7801329.html 目录 1.什么是 ACL 权限? 2.查看分区 ACL 权限是否开启:dump2fs ①.查看 ...
- Mybatis-spring 传统dao开发
jdbc.properties jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis?chara ...