、number[i]
あなたはint
対応に変換することができますchar
型であるため、 (ほとんどの場合、一般の場合)
int result = (int) char.GetNumericValue(number[i]);
char.GetNumericValue
戻りdouble
が、それは'⅜'
文字(0.375
に3/8
corrsponds)、たとえば、のために実際のだということを、何卒ご了承下さい。あなただけ['0'..'9']
範囲で動作する場合は、あなたがしなければならないすべては'0'
を減算することである。
これまでのところ、あなたのコードは、おそらく
// Math.Min - number.Length and number2.Length have diffrent size
// - 1 - strings are zero-based [0..Length - 1]
for (i = Math.Min(number.Length, number2.Length) - 1; i >= 0; i--) {
int save = number[i] + number2[i] - 2 * '0';
...
}
あなたが右両方を合わせにしたいように実装することができ
int result = number[i] - '0';
文字列::あなたはfor
ループを変更する必要があり、この場合の
number = "124235245423523423"
+
number2 = "3423525232332325423"
------------------------------
354... ...846
for (int i = 0; i < Math.Max(number.Length, number2.Length); ++i) {
int sum =
(i < number.Length ? number[number.Length - i - 1] : '0') +
(i < number2.Length ? number2[number2.Length - i - 1] : '0') -
2 * '0';
...
}
インデックスでcharを取得し、numberに変換します。 役立つリンク: http://stackoverflow.com/questions/2416894/how-to-return-the-character-which-is-at-the-index http://stackoverflow.com/questions/239103/c -Sharp-char-to-int –
for(i = number.length-1; i> = 0; i--) – owairc
なぜ実際の問題である 'IndexOutOfRangeException'について言及していませんか? –