BigNumber icon indicating copy to clipboard operation
BigNumber copied to clipboard

Bug in operator-

Open lanpesk opened this issue 1 year ago • 0 comments

when I calculate this:

BigNumber(0) - BigNumber(3)*BigNumber(4)

it is return 12.

In your code:

BigNumber operator-(const BigNumber& number) const noexcept(true) {
	if (this->isPositive() && !number.isPositive()) {
		return *this + number.absoluteValue();
	} else if (!this->isPositive() && number.isPositive()) {
		return -(number + this->absoluteValue());
	}

	if (number.isZero()) {
		return *this;
	}
	if (this->isZero()) {
		return number;
	}

this should be:

	if (this->isZero()) {
		return -number;
	}

lanpesk avatar Dec 13 '23 11:12 lanpesk