2017-09-13 2 views
-1

통화 환율을 계산하는 프로그램을 만들었습니다. 프로그램이 있습니다float.TryParse not working

  1. ComboboxCurrencyName - 통화의 이름을 표시합니다.
  2. ComboCurrencyValue - 주어진 통화의 가치를 표시합니다.
  3. txtYourValue - 사용자로부터 돈의 양을 사용자로부터 주어진 금액에 주어진 통화의 비율을 계산
  4. 버튼을 얻을 텍스트 상자.

내 코드 : 나는 콤보와 특정 통화를 선택하고 내가 변환 할 값을 입력있을 때 나는 버튼을 누르면

public void EchangeRate(float x,float y) 
{ 
    label1.Text = (x * y).ToString(); 
} 

private void button1_Click(object sender, EventArgs e) 
{ 
    if(comboCurrencyName.SelectedIndex==comboCurrencyValue.SelectedIndex) 
    { 
     float currency; 
     float inputValue; 
     if(float.TryParse(comboCurrencyValue.SelectedItem.ToString(),out currency)&& float.TryParse(txtYourValue.Text,out inputValue)) 
     { 
      EchangeRate(currency,inputValue); 
     } 
    } 
    else 
    { 
     MessageBox.Show("Not selected currency "); 
    } 
} 

는, 아무 일도 발생하지 않습니다. 나는 이것이 콤보 상자를 실수 값으로 변환하는 데 문제가 있다고 생각한다. 설명하기 위해

(float.TryParse(comboCurrencyValue.SelectedItem.ToString(), NumberStyles.Any, CultureInfo.InvariantCulture,out currency)&& float.TryParse(txtYourValue.Text,out inputValue)) 

: 교체

System.FormatException: 'Invalid input string format.

Breakpoint

Application window

+1

오류 'System.FormatException :'입력 문자열 형식이 잘못되었습니다. '는 문자열의 형식이 float 형식이 아닌 것을 의미합니다. 따라서'float.TryParse'를 사용하면 false를 반환하기 때문에 if 문에 오류가 발생하지 않습니다. –

+0

가장 좋은 방법은 응용 프로그램을 디버깅하는 것입니다. button1_click 시작 부분에 중단 점을 설정 한 다음 f11 키를 눌러 계속합니다. try catch 블록을 사용하여 예외를 잡아라. 괜찮을거야 – Sameer

+0

tryparse if 문에 추가 else else MessageBox.Show ("invalid input"); ' –

답변

1

: 폴란드에 쉼표가 대신 사용됩니다

은 이전에 내가 오류를했다 float.Parse() 사용 소수점 이하는 불변의 문화권을 사용하도록 지정해야합니다.

+0

오류가 있습니다 : 'float.TryParse의 필수 형식 매개 변수'result '에 해당하는 인수가 없습니다. (string, NumberStyles, IFormatProvider, out float) '' – kdad

+0

결과는 마지막 매개 변수 (통화)입니다. 그게 틀림 없습니까? –

+0

쉼표가 누락되었을 수 있습니다. –