У меня есть две строки "73248723847239847283974283749238" и "98231912938129381290120378988945" Они содержат цифры и могут содержать до 50 символов. Я нашел только одно решение: преобразовать его в массив чисел и сравнить его суммы, но это не очень хорошо с точки зрения производительности. Кто-нибудь знает, как я могу это сравнить?
Я должен сравнить это и найти самый большой из них.
Вы можете обработать это с помощью BigInteger
BigInteger
BigInteger b1 = BigInteger.Parse("73248723847239847283974283749238"); BigInteger b2 = BigInteger.Parse("98231912938129381290120378988945"); BigInteger result = BigInteger.Max(b1, b2);
преобразовать его в массив чисел и сравнить его суммы, ноэто не очень хорошо со стороны производительности
Примечание: производительность - самая маленькая проблема в этом подходе ?
Сделайте его такой же длины с PadLeft (), а затем сопоставьте его:
var s1 = "73248723847239847283974283749238"; var s2 = "98231912938129381290120378988945"; s1 = s1.PadLeft(50, '0'); s2 = s2.PadLeft(50, '0'); var compareResult = s1.CompareTo(s2);