Java 大十进制数学运算

Java 大十进制数学运算,java,object,bigdecimal,Java,Object,Bigdecimal,我想用Java编写,但我遇到了一些错误,我不知道如何编写: C = A - (A*B)/100 我的所有值都定义为Bigdecimal对象 我尝试过类似的方法,但不起作用: C = A.subtract(A.multiply(B).divide(100)); …我收到一条警告,要求向divide方法添加更多参数。我不知道如何正确地写。我做错了什么?提前感谢BigDecimal没有divide(int)方法,但这就是您要求它使用.divide(100)所做的,因为100是int文本。如果引用,

我想用Java编写,但我遇到了一些错误,我不知道如何编写:

C = A - (A*B)/100
我的所有值都定义为Bigdecimal对象

我尝试过类似的方法,但不起作用:

C = A.subtract(A.multiply(B).divide(100));

…我收到一条警告,要求向divide方法添加更多参数。我不知道如何正确地写。我做错了什么?提前感谢
BigDecimal
没有
divide(int)
方法,但这就是您要求它使用
.divide(100)
所做的,因为
100
int
文本。如果引用,则所有的
divide
方法都接受
BigDecimal
实例

c = a.subtract(a.multiply(b).divide(BigDecimal.valueOf(100.0)));
您可以改为使用,方法是:

(它接受
long
[或
double
],但
int
可以升级为
long

或者,对于某些值,可以使用
String
构造函数:

C = A.subtract(A.multiply(B).divide(new BigDecimal("100")));

…尤其是在处理浮点值时,
double
中可能会丢失精度
100
对于
valueOf
很好。

BigDecimal
没有
divide(int)
方法,但这就是你要求它使用
.divide(100)
的方法,因为
100
int
文本。如果引用,则所有的
divide
方法都接受
BigDecimal
实例

您可以改为使用,方法是:

(它接受
long
[或
double
],但
int
可以升级为
long

或者,对于某些值,可以使用
String
构造函数:

C = A.subtract(A.multiply(B).divide(new BigDecimal("100")));
…尤其是在处理浮点值时,
double
中可能会丢失精度
100
对于
valueOf
是可以的,但是。

您会收到警告“BigDecimal类型中的方法除法(BigDecimal)不适用于参数(int)”。并不是说你应该添加更多的参数。如果你得到警告“BigDecimal类型中的方法divide(BigDecimal)不适用于参数(int)”,则可能与相关参数重复。不是说你应该添加更多的参数。可能是重复的