Java BigDecimal的基本使用方法
2015-08-12 15:12
369 查看
1、对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类
3、基本方 法描 述
4、BigDecimal.setScale()方法用于格式化小数点
5、与0比较
2、运算速度比一般的+、-、*、/要快 |
add(BigDecimal)BigDecimal对象中的值相加,然后返回这个对象。 |
subtract(BigDecimal)BigDecimal对象中的值相减,然后返回这个对象。 |
multiply(BigDecimal)BigDecimal对象中的值相乘,然后返回这个对象。 |
divide(BigDecimal)BigDecimal对象中的值相除,然后返回这个对象。 |
toString()将BigDecimal对象的数值转换成字符串。 |
doubleValue()将BigDecimal对象中的值以双精度数返回。 |
floatValue()将BigDecimal对象中的值以单精度数返回。 |
longValue()将BigDecimal对象中的值以长整数返回。 |
intValue()将BigDecimal对象中的值以整数返回。 |
money.divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_DOWN);除100,保留2位小数,四舍五入 |
setScale(1)表示保留一位小数,默认用四舍五入方式 |
setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3 |
setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4 |
setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4 |
setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍 |
注释: |
scale指的是你小数点后的位数。比如123.456则score就是3. |
score()就是BigDecimal类中的方法啊。 |
比如:BigDecimal b = new BigDecimal("123.456"); |
b.scale(),返回的就是3. |
# |
roundingMode是小数的保留模式。它们都是BigDecimal中的常量字段,有很多种。 |
比如:BigDecimal.ROUND_HALF_UP表示的就是4舍5入。 |
# |
pubilc BigDecimal divide(BigDecimal divisor, int scale, int roundingMode) |
的意思是说:我用一个BigDecimal对象除以divisor后的结果,并且要求这个结果保留有scale个小数位, roundingMode表示的就是保留模式是什么,是四舍五入啊还是其它的,你可以自己选! |
4:对于一般add、subtract、multiply方法的小数位格式化如下: |
BigDecimal mData = new BigDecimal("9.655").setScale(2, BigDecimal.ROUND_HALF_UP); |
System.out.println("mData=" + mData); |
----结果:----- mData=9.66 |
标准做法 |
int r=big_decimal.compareTo(BigDecimal.Zero); //和0,Zero比较 |
if(r==0) //等于 |
if(r==1) //大于 |
if(r==-1) //小于 |
或者 |
if(big_decimal.equals(BigDecimal.Zero)) //是否等于0 |
相关文章推荐
- 日常问题记录-- java.util.NoSuchElementException
- myEclipse8.5 startup and shutdown项具体含义
- Spring3.0注解标签
- 抽象类和接口的区别
- 日常问题记录--POST时,struts2的 request.getParameter找不到参数
- MyEclipse6.5 代码提示设置技巧
- java日期格式转换
- 十六进制颜色值和ARGB颜色值的转换
- Java多线程系列--“JUC锁”06之 Condition条件
- springMVC学习笔记---参数传递
- java实现print打印
- 很有意思的流水账号的算法(java)
- [转载] Java安全体系简介
- java Collections.sort()实现List排序的默认方法和自定义方法
- java设计模式----简单工厂模式
- java中native方法的使用
- eclipse 在win7 64两个图标出现位操作系统无法锁定到任务栏或任务栏
- Eclipse 查找替换正则表达式1
- [转载] Java中常用的加密方法
- VS调用Java的WebService