Java 如何对对象进行算术运算
我在两个简单的java文件中有几个Java 如何对对象进行算术运算,java,math,Java,Math,我在两个简单的java文件中有几个biginger对象。但是,由于它们不是基元类型,算术运算符对它们不起作用 每次使用运算符时都会出现错误,如下所示: .\_Mathematics\Formulas\Factorial.java:10: error: bad operand types for binary o perator '*' result *= i; ^ first typ
biginger
对象。但是,由于它们不是基元类型,算术运算符对它们不起作用
每次使用运算符时都会出现错误,如下所示:
.\_Mathematics\Formulas\Factorial.java:10: error: bad operand types for binary o
perator '*'
result *= i;
^
first type: BigInteger
second type: int
这是:
package _Mathematics.Formulas;
import java.math.*;
public class Factorial<T extends Number> {
public T o;
public BigInteger r;
public Factorial(int num) {
BigInteger result = new BigInteger("1");
for(int i = num; i > 0; i--)
result *= i;
this.o = num;
this.r = result;
}
}
package\u数学公式;
导入java.math.*;
公共类阶乘{
公共交通;
公共大整数r;
公阶乘(整数){
BigInteger结果=新的BigInteger(“1”);
对于(int i=num;i>0;i--)
结果*=i;
这个.o=num;
这个。r=结果;
}
}
及
package\u数学公式;
导入java.math.*;
公共阶级权力{
公共交通;
公共大整数r;
公共权力(总人数,总功率){
BigInteger结果=新的BigInteger(1);
对于(int i=0;i
我四处寻找了一会儿,想知道如何解决这个问题,但找不到答案
有人能帮我吗
谢谢。
BigInteger
有用于此的运算符方法。由于biginger
本身是不可变的,因此需要将该值分配给结果
例如下面的例子
result *= num;
将成为
result = result.multiply(num);
您应该在类中使用multiply方法。为算术运算定义了自己的方法。因此,
result *= num;
应该是
result = result.multiply(num);
同样地,如果你想
加
,除
,或者减
,你看过BigInteger javadoc了吗?
result = result.multiply(num);