public bool IsLargerOrEqual(VeryLong other) { string firstInteger = GetInteger(); string otherInteger = other.GetInteger(); // compare integers (number in front of decimal point) if (firstInteger.Length > otherInteger.Length) { return(true); } else if (firstInteger.Length < otherInteger.Length) { return(false); } else { int isLargerOrEqual = firstInteger.CompareTo(otherInteger.ToString()); if (isLargerOrEqual == -1) // other is smaller { return(false); } else if (isLargerOrEqual == 1) // other is larger { return(true); } else // integers are equal --> compare decimal digits { string decimalDigits = GetDecimalDigits(); string otherDecimalDigits = other.GetDecimalDigits(); isLargerOrEqual = decimalDigits.CompareTo(otherDecimalDigits); if (isLargerOrEqual == -1) // other is smaller { return(false); } else { return(true); } } } }