분수를 백분율로 변환하는 응용 프로그램을 빌드하고 있습니다. 나는 분수의 텍스트를 편집하여 새로 고침하고 백분율을 다시 계산하기를 원합니다.이 코드가 ArgumentOutOfRangeException을 일으키는 이유는 무엇입니까?
내가 테스트 할 때 처음에는 오류를 수정하지 않고 잘 작동하지만 오류가있는 부분을 두 번째로 변경하면 오류가 발생합니다. 나는 형 System.ArgumentOutOfRangeException이 처리되지 않은 예외가 mscorlib.dll
나는이 문제를 해결하기 위해 무엇을 할 수에서 발생
이 오류를 얻을?
저는 C#에 상당히 익숙합니다. 가능하다면 모두 바보로 만드십시오.
추가 정보 : 인덱스 및 길이는 문자열 내의 위치를 참조해야합니다 "
여기내가 지금까지이 작업은 다음과 같습니다. 당신은 내가 그 일을 말할 수 제공된 코드에서
private void fractionNumerator_KeyPress(object sender, KeyPressEventArgs e) { if (!(char.IsNumber(e.KeyChar) || ((e.KeyChar) == Convert.ToChar(Keys.Back)))) { e.Handled = true; } else { if (!((fractionNumerator.Text == "") && (fractionDenominator.Text == ""))) { if ((e.KeyChar == Convert.ToChar(Keys.Back))) { string numer = (fractionNumerator.Text.Substring(0, (fractionNumerator.Text.Length) - 1)); string denom = (fractionDenominator.Text); outputPercentage.Text = (((((Convert.ToDouble(numer)/Convert.ToDouble(denom)) * 100).ToString()).Substring(0, 6)) + "%"); } else { string numer = ((fractionNumerator.Text) + e.KeyChar.ToString()); string denom = (fractionDenominator.Text); outputPercentage.Text = (((Convert.ToDouble(numer)/Convert.ToDouble(denom)*100).ToString()).Substring(0, 6)); } } } } private void fractionDenominator_KeyPress(object sender, KeyPressEventArgs e) { if (!(char.IsNumber(e.KeyChar) || ((e.KeyChar) == Convert.ToChar(Keys.Back)))) { e.Handled = true; } else { if (!((fractionNumerator.Text == "") && (fractionDenominator.Text == ""))) { if ((e.KeyChar == Convert.ToChar(Keys.Back))) { string denom = (fractionDenominator.Text.Substring(0, (fractionDenominator.Text.Length) - 1)); string numer = (fractionNumerator.Text); outputPercentage.Text = (((((Convert.ToDouble(numer)/Convert.ToDouble(denom)) * 100).ToString()).Substring(0, 6)) + "%"); } else { string denom = ((fractionDenominator.Text) + e.KeyChar.ToString()); string numer = (fractionNumerator.Text); outputPercentage.Text = (((Convert.ToDouble(numer)/Convert.ToDouble(denom) * 100).ToString()).Substring(0, 6)); } } } }
어떤 줄에 오류가 있습니까? –
6 문자 미만의 문자열에서 어떻게 든 호출되는'하위 문자열 (0, 6)) '을 추측합니다. –
'Substring' 호출 중 하나입니다. 하위 출력을 사용하여 두 번 출력 형식을 지정하지 않습니다. 형식 지정자를 사용하십시오. http://msdn.microsoft.com/en-us/library/kfsatb94(v=vs.110).aspx –