私は数字のリストを含むテキストファイルを持っています。最初の行は5.5、2行目は8行目、3行目は13行目などとなります。各テキストファイルには、異なる数のリストを毎回生成しますが、私はこのケースでは、ここで、5.5である最初の行に集中してる私のコードは数字を含むテキストファイルの最初の行のみを読み、それに数学を行うにはどうすればよいですか?
StreamReader FileFav = new StreamReader(BettingFileFav);
StreamReader FileOdds = new StreamReader(BettingFileOdds);
StreamReader FileResult = new StreamReader(BettingFileResult);
FavLine = FileFav.ReadLine();
OddsLine = FileOdds.ReadLine();
ResultLine = FileResult.ReadLine();
int BetAmount = 10;
if (FavLine.Contains("Yes"))
{
int a = Convert.ToInt16(OddsLine);
double c = ((double)a * BetAmount);
string myString = c.ToString("#.##");
MessageBox.Show("Won £" + myString);
}
else
{
MessageBox.Show("Lost -£" + BetAmount);
}
であることが読み取ったテキストの行は5.5ので、私を読み込み答え55.50を得ようとしています。 エラーコード
追加情報:入力文字列の形式が正しくありません。
私はMessageBox.Showを使用して動作しているかどうかを確認し、後で使用するファイルに結果を移行します。
誰でも手伝いできますか?
なるべきなぜあなたは 'int'に変換してから' double'にキャストしようとしていますか?すぐに「ダブル」に変換してみませんか? – UnholySheep
また、(明らかに)デバッガの下で実行したときに 'OddsLine'の値は何ですか? –
5.5(浮動小数点値)をInt16に解析しようとしています: 'int a = Convert.ToInt16(OddsLine);'。なぜあなたはそれがうまくいくと思いますか?そして、その正確なコード行にエラーが発生したとき、なぜそれを見つけられなかったでしょうか? –