Esempio n. 1
0
	bool operator >= (const Decimal &a, const Decimal &b) {
		if (a.is_neg != b.is_neg) {
			return !a.is_neg || (a.is_zero() && b.is_zero());
		}
		else if (!a.is_neg) {
			// a, b >= 0
			if (a.integer != b.integer) {
				return a.integer > b.integer;
			}
			for (int i = 0; i < Decimal::len; i++) {
				if (a.data[i] != b.data[i]) {
					return a.data[i] > b.data[i];
				}
			}
			return true;
		}
		else {
			// a, b <= 0
			if (a.integer != b.integer) {
				return a.integer < b.integer;
			}
			for (int i = 0; i < Decimal::len; i++) {
				if (a.data[i] != b.data[i]) {
					return a.data[i] < b.data[i];
				}
			}
			return true;
		}
	}
Esempio n. 2
0
	bool operator == (const Decimal &a, const Decimal &b) {
		if (a.is_zero() && b.is_zero()) return true;
		if (a.is_neg != b.is_neg) return false;
		if (a.integer != b.integer) return false;
		for (int i = 0; i < Decimal::len; i++) {
			if (a.data[i] != b.data[i]) return false;
		}
		return true;
	}