2016-11-02 5 views
-2
 Console.Write("Hoeveel worpen wil je simuleren: "); 
     int worpen = int.Parse(Console.ReadLine()); 



     Random r = new Random(worpen); 
     int willekeur = r.Next(1, worpen); 
     double willekeur1 = willekeur; 
     Math.Round(willekeur1); 


     for (int i = 1; i <= 12; i++) 
     { 
      Console.WriteLine("ik gooide "+willekeur+" ("+Math.Round(willekeur1,2,)+")"); 
      willekeur = r.Next(1, worpen); 

     } 
     Console.ReadLine(); 

私は 'willekeur1'に10進数のコンマを含む数字を入力します。その一例:12456 - > 12456intをコンマで小数点に変換するには?

+2

可能な複製物eの[.NET String.Format()は数千位のカンマを数値に追加する](http://stackoverflow.com/questions/105770/net-string-format-to-add-commas-in-thousands-place -for-a-number) –

+1

'Int'sには小数点またはカンマがありません。文字列に変換するときは、現在のカルチャ(または指定したカルチャ)によってフォーマットが決まります。 ['string.Format(number、format)'](https://msdn.microsoft.com/en-us/library/system.string.format(v = vs.110).aspx)または['double。 ToString(format) '](https://msdn.microsoft.com/en-us/library/kfsatb94(v = vs.110).aspx)を使用して、結果を表示する形式を指定します。 –

+0

あなたの現在の状況は非常に不明です尋ねる(特に無関係の何かを回答として受け入れる)。おそらく 'willekeur1/1000.0'を探しているだけでしょうか? –

答えて

0

はあなたが行うことができます: 使用するためには、変数に値を読み取ることで、あなたの場合は(あなたは、文字列の補間を使用するために、最新のC#が必要)

$"{12456:n0}"; // 12,456 
$"{12456:n2}"; // 12,456.00 

Console.WriteLine($"ik gooide {willekeur} ({Math.Round(willekeur1,2,)})"); 

$"{Math.Round(willekeur1,2):n0}"; 
$"{Math.Round(willekeur1,2):n2}"; 
-1

これはあなたのための役に立つかもしれない:

public float ReadFloat() 
     { 
      float ReadValue = 0; 
      string KeySequence = ""; 
      string TempKey = ""; 
      bool CommaUsed = false; 
      ConsoleKeyInfo key; 
      do 
      { 
       key = Console.ReadKey(true); 
       if ((key.Key >= ConsoleKey.D0 && key.Key <= ConsoleKey.D9) || (key.Key >= ConsoleKey.NumPad0 && key.Key <= ConsoleKey.NumPad9)) 
       { 
        TempKey = Convert.ToString(key.Key); 
        TempKey = TempKey.Remove(0, 1); 
        KeySequence += TempKey; 
        Console.Write(TempKey); 
       }; 

       if (key.Key == ConsoleKey.OemComma || key.Key == ConsoleKey.Decimal) 
       { 
        if (!CommaUsed) 
        { 
         KeySequence += "."; 
         Console.Write("."); 
         CommaUsed = true; 

        }; 
       }; 

       if ((key.Key == ConsoleKey.Backspace) && KeySequence != "") 
       { 
        string LastChar = KeySequence.Substring(KeySequence.Length - 1); 
        //MessageBox.Show("Last char: "+LastChar); 
        //Convert.ToChar(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator) 
        char SepDeci = Convert.ToChar(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator); 
        if (Convert.ToChar(LastChar) == SepDeci) 
        { 
         CommaUsed = false; 
        }; 
        KeySequence = KeySequence.Remove(KeySequence.Length - 1); 
        Console.Write("\b \b"); 
       }; 
      } 
      while (key.Key != ConsoleKey.Enter); 
      if (KeySequence == "") 
      { 
       return 0; 
      }; 
      ReadValue = Convert.ToSingle(KeySequence); 
      return ReadValue; 
     } 

この方法は、コンソールから値を読み取りますが、あなたのカルチャ設定に応じて、数字と小数点区切り(カンマやドット、のみを許可します)。

willekeur1 = ReadFloat(); 
+0

この投稿は質問に答えたようには見えません。また、構文解析と書式設定のための関数が組み込まれている場合、数値を解析する手作業のコードを提案することは非常に奇妙です... –

関連する問題