adf中EO属性类型为Bigdecimal问题

在12c中,ADF统计使用了Bigdecimal来作为数字的数据类型,Bigdecimal类本来主要用于商业运算,在实现的项目中习惯了用int和float了,所以在用12c开发的时候,因为Bigdecimal运算导致不少的精度异常,比如78.5,明明与保留了一个小数位,可还是提示报精度异常。虽然我们可以通过NumberFormat类来格式化,但最终ADF还是需要帮我们自动转换成Bigdecimal,故是多余的。现在把Bigdecimal类的一些方法做个简介以示教训吧.



构造器 

BigDecimal(int)创建一个具有参数所指定整数值的对象。 

BigDecimal(double)创建一个具有参数所指定双精度值的对象。 

BigDecimal(long)创建一个具有参数所指定长整数值的对象。 

BigDecimal(String)创建一个具有参数所指定以字符串表示的数值的对象。



方 法描 述 

add(BigDecimal)BigDecimal对象中的值相加,然后返回这个对象。 

subtract(BigDecimal)BigDecimal对象中的值相减,然后返回这个对象。 

multiply(BigDecimal)BigDecimal对象中的值相乘,然后返回这个对象。 

divide(BigDecimal)BigDecimal对象中的值相除,然后返回这个对象。 

toString()将BigDecimal对象的数值转换成字符串。 

doubleValue()将BigDecimal对象中的值以双精度数返回。 

floatValue()将BigDecimal对象中的值以单精度数返回。 

longValue()将BigDecimal对象中的值以长整数返回。 

intValue()将BigDecimal对象中的值以整数返回。 

 
BigDecimal.setScale()方法用于格式化小数点
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则向下舍
 
 
注释:
1:
scale指的是你小数点后的位数。比如123.456则score就是3.
score()就是BigDecimal类中的方法啊。
比如:BigDecimal b = new BigDecimal("123.456");
b.scale(),返回的就是3.
2:
roundingMode是小数的保留模式。它们都是BigDecimal中的常量字段,有很多种。
比如:BigDecimal.ROUND_HALF_UP表示的就是4舍5入。
3:
pubilc BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
的意思是说:我用一个BigDecimal对象除以divisor后的结果,并且要求这个结果保留有scale个小数位,roundingMode表示的就是保留模式是什么,是四舍五入啊还是其它的,你可以自己选!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值