如何用逗号将int转换为小数?

时间:2016-11-02 19:56:08

标签: c#

        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'是一个包含小数点逗号的数字。例如:12456 - &gt; 12,456

2 个答案:

答案 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 :(得分:-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();