floatをint32に変換しようとすると、convert.toint32(float)が失敗します
-
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入力文字列は正しい形式ではありませんでした。
所属していません StackOverflow