floatをint32に変換しようとすると、convert.toint32(float)が失敗します

StackOverflow https://stackoverflow.com/questions/3558112

  •  01-10-2019
  •  | 
  •  

質問

例外はありません。この声明で機能が停止するだけです。

int productQuantity = Convert.ToInt32("1.00");

と返品。

このフロートを変換するために私は何が間違っていますか Int32?

注:私はaで走っています BackgroundWorkerThread.

役に立ちましたか?

解決

この場合、例外がスローされていることです。デバッガーでは浮上していません。この文字列は、に変換可能な形式ではありません Int32 タイプ、したがってスローと例外。 IDEが協力していない場合は、トライ/キャッチブロックにラップすることで、これを確認できます。

ここで最良のアプローチは、おそらく文字列をに変換することです double そして、手動でそれをキャストします int. 。これにより、精度の違いによりデータ損失の扉が開かれます。しかし、あなたの入力がフロートスタイルの形式であることを考えると、最終製品をにしたいのなら、これは避けられません int

他のヒント

あなたはそれをaに変換する必要があります double 最初に、次に変換します Int32.

int productQuantity = Convert.ToInt32(double.Parse("1.00"));

例外がスローされます、それはあなたがそれを見るためにそれだけですあなたは RunWorkerCompletedEventArgs.Error イベントハンドラーのプロパティ BackgroundWorker.RunWorkerCompleted.

バックグラウンドワーカーのスレッドからバックグラウンドワークが行われているときにスローされる例外は、そのプロパティに割り当てられます。

Formatexception入力文字列は正しい形式ではありませんでした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top