bigdecimal 除以整数
我想将 bigdecimal 值除以整数。我已经对 bigdecimal 值进行了四舍五入(如果它是 133.333,则四舍五入的值为 133)。下面给出的是我的代码片段。
v1 = v1.setScale(0, RoundingMode.HALF_UP);
int temp = BigDecimal.valueOf(v1.longValue()).divide(constant1);
常量的值为 12。它显示一条错误消息:
BigDecimal类型中的方法divide(BigDecimal)不适用于参数(int)
任何人都可以帮我做除法吗?
I want to divide a bigdecimal value with an integer.i have rounded the bigdecimal value(if it is 133.333 then rounded value is 133).given below is my code snippet.
v1 = v1.setScale(0, RoundingMode.HALF_UP);
int temp = BigDecimal.valueOf(v1.longValue()).divide(constant1);
value of constant is 12. It is showing an error message that
The method divide(BigDecimal) in the type BigDecimal is not applicable for the arguments (int)
Can anyone help me to do the division?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
顺便
说
一句,你为什么不做类似的事情呢
?
Change
to
Btw, why don't you just do something like
??
您应该按如下方式编写代码:
BigDecimal 和 BigInteger 的特点是它们主要使用这些类的实例而不是原始类型进行操作。操作的结果也是这些类的新实例。
另外一点:我建议使用
valueOf
静态方法而不是构造函数,因为通过这样做,您可能会避免创建新对象。使用构造函数可以显式地创建新对象,但在本例中根本没有必要这样做。You should write the code as follows:
The thing about BigDecimal and BigInteger is that they mostly operate with instances of these classes and not with primitive types. Results of operations are also new instances of these classes.
One other remark: I advise to use
valueOf
static method instead of a constructor, because by doing this you may have a possibility to avoid creation of new objects. Using a constructor makes creation of a new object explicit, which is not necessary in this case at all.