2017-09-13 10 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.TryParse'を使用すると、falseを返すので、if文に(入力にまだエラーがある場合)取得されないことを意味します。 –

+0

最も良い方法は、アプリケーションをデバッグすることです。 button1_clickの開始位置にブレークポイントを設定し、f11キーを押して続行します。 try catchブロックを使用して例外を取得します。 – Sameer

+0

tryparse ifステートメントに追加 'else MessageBox.Show(" invalid input ");' –

答えて

1

:ポーランドにカンマが代わりに使用され

は、以前私はエラーが発生しましたfloat.Parse()使用しました小数点の不変のカルチャを使用するように指定する必要があります。

+0

私はエラーがあります: 'float.TryParseの必須の仮パラメータ' result 'に対応する引数はありません(string、NumberStyles、IFormatProvider、out float) '' – kdad

+0

結果は最後のパラメータ(通貨)です。あなたはそれが正しいと確信していますか? –

+0

コンマがないかもしれませんか? –