2017-11-01 9 views
1

私はC#で新しく、コンソールから値浮動を取ろうとしましたが、小数点なしで残っています。私は3.7を書く場合、印刷promedio(平均)は、それが見ればターミナルからフロートを取って残しました

do { 
     Console.Write("Promedio:\t"); 
     promedio = float.Parse(Console.ReadLine()); 
      if (promedio < 0.0 || promedio > 5.0) { 
       Console.WriteLine("Error: >> Promedio incorrecto, digite un valor entre 0.0 y 5.0\n"); 
      } 
    } while (promedio < 0 || promedio > 5); 

:37を加えて、しばらく上記のコードでは、これまでpromedioが間違っていると言うために

は、これは私のコードです。

エラーとは...任意の提案または推奨事項ですか? ...ありがとう。 PD:「」のために申し訳ありませんが、私の英語

+0

コードには、数値をコンソールに表示している場所はありません。これは本当にすべてのコードですか? –

+2

あなたのコードをコピーして空白のメインに貼り付け、その上に 'var promedio = 0.0F;'を追加しました。3.7に入ったときにうまくいきました。それはdo-whileループを終了し、デバッガはpromedioを3.7と表示しました3.7 –

+3

おそらくロケールの問題? 'float.Parse(Console.ReadLine()、System.Globalization.NumberStyles.Float、System.Globalization.NumberFormatInfo.InvariantInfo)を試してください。' – BurnsBA

答えて

0

今フロートを解析するために使用される区切りがあるdo{}while();

CultureInfo ci = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone(); 
ci.NumberFormat.DecimalNumberSeparator = "."; 
Thread.CurrentThread.CurrentCulture = ci; 

前にこれをやって試してみてください3.7は、必要な番号に正常に解析されるはずです。それが役に立てば幸い。

+0

私はOPがスペイン語で、カンマの小数点記号を使いたいと思う。 – spodger

+0

@spodger OPが与えるサンプル入力は '3.7'です。'、 'によって'、 'を変更することを提案しています。 – dcg

+0

間違いなくローカリゼーション/カルチャーの問題です。 – KinSlayerUY

関連する問題