【发布时间】:2011-02-11 16:37:02
【问题描述】:
我第一次尝试使用 BigDecimal。这似乎很棘手。我遇到了一个问题,我想了解是什么原因造成的。
public static String nominator(String nbrPeople)
{
BigDecimal nom = new BigDecimal("365") ;
BigDecimal days = new BigDecimal("365") ;
int limit = Integer.parseInt(nbrPeople);
for (int i = 0 ; i < limit ; i++ )
{
days = days.substract(i) ;
nom = nom.multiply(days) ;
}
return nbrPeople ;
}
这是一个更大计划的一部分。它是一种应该计算如下内容的方法:
365 x (365-1) x (365-2) x (365-3) 等取决于传入的 nbrPeople 的值。
我想了解为什么我会收到以下错误消息:
找不到符号
方法减法(int)
不是在寻找关于阶乘的讨论,而是关于 BigDecimal(或 BigInteger)的使用。我正在使用 BigDecimal,因为在稍后阶段我需要除法,从而产生浮点数。
编辑
编辑 2
删除第一个编辑(代码)以使帖子更具可读性 - 正确的代码已由善良的程序员发布在下面
【问题讨论】:
-
正如我的回答中已经提到的。你不能减去 i 因为它不是 BigInteger。
标签: java bigdecimal