Java BigDecimal+;=(添加和分配)…如何执行此操作?
我似乎找不到BigDecimal类中的“add and assign”方法 有什么办法吗 如果您不理解我的问题,我会尝试这样做:Java BigDecimal+;=(添加和分配)…如何执行此操作?,java,bigdecimal,Java,Bigdecimal,我似乎找不到BigDecimal类中的“add and assign”方法 有什么办法吗 如果您不理解我的问题,我会尝试这样做: a+=b 但是我试图用BigDecimal来实现它,BigDecimal类中有一个add方法 你必须做-a=a.add(b) 看看。否-没有等效的机制 只需使用add方法大小数就是对象。+=运算符仅适用于原语 所以我认为你不能做你想做的事。我想你会喜欢这样的东西: BigDecimal bd= getNumber(); bd.addAndAssign(5); Big
a+=b代码>
但是我试图用BigDecimal来实现它,BigDecimal
类中有一个add
方法
你必须做-a=a.add(b)代码>
看看。否-没有等效的机制
只需使用add
方法大小数就是对象。+=
运算符仅适用于原语
所以我认为你不能做你想做的事。我想你会喜欢这样的东西:
BigDecimal bd= getNumber();
bd.addAndAssign(5);
BigDecimal
是不可变的对象,因此否,您不能这样做
您必须使用add()
并将其与自身相等,例如a=a.add(b)
您可以使用该方法
由于BigDecimal是不可变的,因此不能期望a.add(b)
变异a
。必须将新的BigDecimal
对象返回到引用a
。因此,a=a.add(b)
是您所需要的。我得到了java bigdecimal add
的第一个google结果。您不能对bigdecimal使用常规的+-*/
运算符,因为它们不是原语。太糟糕了,这可能是我最讨厌的关于Java的事情之一(即使我喜欢它),谢谢你们回答了我的问题并告诉我需要做什么。我真傻,真不敢相信我没有想到这一点。非常感谢。以防你想知道详情。BigDecimal是一个与Integer相同的类。现在,在Java中,整数有一个基本类型,即int。因此,对于int,您可以做您想做的事情,即+=,然而,对于BigDigPiple和整数,你不能。我理解,我假设有人会把那个操作符写为BigDeCuMy类的一种方法,类似于C++中的方法,你可以为任何类编写方法来使用+,-,*,和赋值操作符。基于这里的答案,我假设您无法做到这一点,但在java>1.5中,自动装箱是不正确的,您可以使用WrapperClass,例如Integer Double。。
a = a.add(b);