class Point {
BigDecimal x;
BigDecimal y;
Point(double px, double py) {
x = new BigDecimal(px);
y = new BigDecimal(py);
}
void addFiveToCoordinate(String what) {
if (what.equals("x")) {
BigDecimal z = new BigDecimal(5);
x.add(z);
}
}
void show() {
System.out.print("\nx: " + getX() + "\ny: " + getY());
}
public BigDecimal getX() {
return x;
}
public BigDecimal getY() {
return y;
}
public static void main(String[] args) {
Point p = new Point(1.0, 1.0);
p.addFiveToCoordinate("x");
p.show();
}
}
OK、2つのBigDecimal値を追加したいと思います。私はダブルでコンストラクタを使用しています(可能だと思うので、ドキュメントにオプションがあります)。メインクラスで使用すると、次のようになります。
x: 1
y: 1
System.out.printを使用してz変数を表示すると、次のようになります。
z: 5
BigDecimalは不変です。すべての操作は、操作の結果を含む新しいインスタンスを返します。
BigDecimal sum = x.add(y);
Xを変更したい場合は、こうする必要があります
x = x.add(y);
javadoc を読むと、クラスとそのメソッドの仕組みを理解するのに役立ちます。
おそらくこれはあなたが好むものです:
BigDecimal z = new BigDecimal(5).add(x);
BigDecimal
のすべての操作は、新しいBigDecimal
を返しますが、現在のインスタンスは変更しません。