BigNumber
BigNumber copied to clipboard
Bug in operator-
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;
}