bigdecimal 除以整数

发布于 2024-12-11 01:24:11 字数 360 浏览 0 评论 0原文

我想将 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我为君王 2024-12-18 01:24:11

顺便

.divide(constant1);

.divide(new BigDecimal(constant1));

一句,你为什么不做类似的事情呢

int temp = (int) (Math.round(v1.doubleValue()) / constant1);

Change

.divide(constant1);

to

.divide(new BigDecimal(constant1));

Btw, why don't you just do something like

int temp = (int) (Math.round(v1.doubleValue()) / constant1);

??

辞取 2024-12-18 01:24:11

您应该按如下方式编写代码:

int temp = BigDecimal.valueOf(v1.longValue())
        .divide(BigDecimal.valueOf(constant1)).intValue();

BigDecimal 和 BigInteger 的特点是它们主要使用这些类的实例而不是原始类型进行操作。操作的结果也是这些类的新实例。

另外一点:我建议使用 valueOf 静态方法而不是构造函数,因为通过这样做,您可能会避免创建新对象。使用构造函数可以显式地创建新对象,但在本例中根本没有必要这样做。

You should write the code as follows:

int temp = BigDecimal.valueOf(v1.longValue())
        .divide(BigDecimal.valueOf(constant1)).intValue();

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文