如何比较两个用c#表示数字的字符串?

时间:2019-03-18 14:31:03

标签: c# string numbers compare

我有两个字符串“ 73248723847239239847283974283749238” “ 98231912938129381290290120378988945” 它们包含数字,长度可能为50个字符。我发现了一个解决方案:将其转换为数字数组并比较其总和,但从性能方面来看并不是很好。有人知道我可以比较它吗?

2 个答案:

答案 0 :(得分:6)

  

我必须比较它,找到其中最大的一个。

您可以使用BigInteger

处理它
BigInteger b1 = BigInteger.Parse("73248723847239847283974283749238");
BigInteger b2 = BigInteger.Parse("98231912938129381290120378988945");

BigInteger result = BigInteger.Max(b1, b2);

  

将其转换为数字数组并比较它们的总和,但从性能角度来看不是很好

旁注-性能是此方法的最小问题

答案 1 :(得分:3)

使用PadLeft()使其具有相同的长度,然后比较:

var s1 = "73248723847239847283974283749238";
var s2 = "98231912938129381290120378988945";

s1 = s1.PadLeft(50, '0');
s2 = s2.PadLeft(50, '0');

var compareResult = s1.CompareTo(s2);