按整数划分bigdecimal

时间:2011-10-19 09:59:47

标签: java android division bigdecimal

我想将一个bigdecimal值除以一个整数。我已经舍入了bigdecimal值(如果它是133.333那么舍入值是133)。以下是我的代码片段。

v1 = v1.setScale(0, RoundingMode.HALF_UP);
int temp = BigDecimal.valueOf(v1.longValue()).divide(constant1);

常量的值是12.它显示错误消息

  

BigDecimal类型中的方法除(BigDecimal)不适用于参数(int)

有人可以帮助我做分工吗?

2 个答案:

答案 0 :(得分:4)

更改

.divide(constant1);

.divide(new BigDecimal(constant1));

顺便问一下,你为什么不做一些像

这样的事情
int temp = (int) (Math.round(v1.doubleValue()) / constant1);

...

答案 1 :(得分:0)

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

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

关于BigDecimal和BigInteger的事情是它们主要使用这些类的实例而不是基本类型。操作结果也是这些类的新实例。

另一个评论:我建议使用valueOf静态方法而不是构造函数,因为通过这样做,您可能有可能避免创建新对象。使用构造函数可以显式创建新对象,在这种情况下根本不需要。