통화 환율을 계산하는 프로그램을 만들었습니다. 프로그램이 있습니다float.TryParse not working
- ComboboxCurrencyName - 통화의 이름을 표시합니다.
- ComboCurrencyValue - 주어진 통화의 가치를 표시합니다.
- txtYourValue - 사용자로부터 돈의 양을 사용자로부터 주어진 금액에 주어진 통화의 비율을 계산
- 버튼을 얻을 텍스트 상자.
내 코드 : 나는 콤보와 특정 통화를 선택하고 내가 변환 할 값을 입력있을 때 나는 버튼을 누르면
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.
오류 'System.FormatException :'입력 문자열 형식이 잘못되었습니다. '는 문자열의 형식이 float 형식이 아닌 것을 의미합니다. 따라서'float.TryParse'를 사용하면 false를 반환하기 때문에 if 문에 오류가 발생하지 않습니다. –
가장 좋은 방법은 응용 프로그램을 디버깅하는 것입니다. button1_click 시작 부분에 중단 점을 설정 한 다음 f11 키를 눌러 계속합니다. try catch 블록을 사용하여 예외를 잡아라. 괜찮을거야 – Sameer
tryparse if 문에 추가 else else MessageBox.Show ("invalid input"); ' –