BigDecimal类中的divide方法怎么用的?

wantyer 2011-01-23 04:21:28
从中文版的API文档找到的内容,但里面的解释不详细,望高手作答:

方法1:
pubilc BigDecimal divide(BigDecimal divisor)
API中的解释: 返回一个 BigDecimal,其值为 (this / divisor),其首选标度为 (this.scale() - divisor.scale());如果无法表示准确的商值(因为它有无穷的十进制扩展),则抛出 ArithmeticException。
  问1:这里的标度是什么意思?
  问2:scale()方法是那个类里面的。


方法2:
pubilc BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
  问3:roundingMode是什么(环境模式)?
  问4:这里引入scale和roundingMode的作用是什么?


方法3:
pubilc BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode)
问5:这里的RoundingMode类是在哪个包里的?
...全文
55493 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
晚风来急 2011-05-31
  • 打赏
  • 举报
回复
谢谢大虾叻,该字条对我有用!!!
wantyer 2011-01-23
  • 打赏
  • 举报
回复
谢谢学长的详解。小弟受教了。
wolfkoala 2011-01-23
  • 打赏
  • 举报
回复
同意1楼
三心不可得 2011-01-23
  • 打赏
  • 举报
回复
方法一:
scale指的是你小数点后的位数。比如123.456则score就是3.
score就是BigDecimal类中的方法啊。
你自己定义一个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表示的就是保留模式是什么,是四舍五入啊还是其它的,你可以自己选!
你是否因为JS端的小数计算的精度不足而发愁过呢 其实有个不错的资源可以利用。 引用附件的JS,就可以轻松搞定JS的计算问题了。 使用例