C# 以百分比形式显示随机数

C# 以百分比形式显示随机数,c#,winforms,C#,Winforms,我正在学习C#,我想在一个标签中显示的随机数后显示%符号。 我的代码运行良好,但只显示数字。我要带百分号的数字: Random randnum = new Random(); label_showRandNum.Text = randnum.Next(-1, 101).ToString(); 我只是不知道如何用百分号(%)来显示数字。 我曾尝试格式化标签,但没有成功。当选择的号码为10时,我还会显示一条消息: int number; number = Convert.ToInt32(label


我正在学习C#,我想在一个标签中显示的随机数后显示%符号。
我的代码运行良好,但只显示数字。我要带百分号的数字:

Random randnum = new Random();
label_showRandNum.Text = randnum.Next(-1, 101).ToString();
我只是不知道如何用百分号(%)来显示数字。
我曾尝试格式化标签,但没有成功。当选择的号码为10时,我还会显示一条消息:

int number;
number = Convert.ToInt32(label_showRandNum.Text);
if (number == 10)
{
    MessageBox.Show("You have picked 10%!");
}
我认为转换变量时,百分号会导致异常。
我不知道该怎么办。我将感谢任何帮助。
提前谢谢

你是说这个吗

 int number;
    number = Convert.ToInt32(label_showRandNum.Text);
    if (number == 10)
    {
        MessageBox.Show("You have picked "+number +"%!");
    }
大概是这样的:

    int value = int.Parse(text.Replace("%",""));
    Console.WriteLine(value);
要将随机数作为带有
%
符号的字符串获取,请执行以下操作:

    Random randnum = new Random();
    string text = randnum.NextDouble().ToString("P0");   // note P0 will give you 
                                                         // zero decimal places
    Console.WriteLine(text);
要将其转换为
int
(或
double
),可以执行以下操作:

    int value = int.Parse(text.Replace("%",""));
    Console.WriteLine(value);

请注意,使用
p
格式说明符将自动将数字乘以
100
,这就是为什么我使用
NextDouble
生成一个介于
0..1
之间的数字,以给出介于
0..100%
之间的输出。因此,如果您希望在解析后返回原始值,则需要将其再次除以100。

您有多个选项

首先在
ToString
中使用格式
p
p
,如:

Random randnum = new Random();
label_showRandNum.Text = randnum.Next(-1, 101).ToString("p");
但是,问题是,格式
p
导致数字乘以
100
,然后在其旁边放一个百分号

数字乘以100并以百分比符号显示

您可以使用生成0到1之间的值的
Random.NextDouble
方法,然后在标签中使用该方法

但另一个选择是:

您可以
%
百分号与标签连接起来,在解析时可以将其删除,如下所示:

label_showRandNum.Text = randnum.Next(-1, 101).ToString()
    + CultureInfo.CurrentCulture.NumberFormat.PercentSymbol;
这将导致
文本
对于
en-US
文化保留值,如
10%

稍后,当您将
文本
值解析为
int
时,您可以执行以下操作:

int number = int.Parse(label_showRandNum.Text.Replace
                         (CultureInfo.CurrentCulture.NumberFormat.PercentSymbol,
                         ""));

我宁愿使用
CultureInfo.CurrentCulture.NumberFormat.PercentSymbol
然后硬编码
%
符号。因为这可能因文化而异

看。您需要说明符。您的目标是什么类型的应用程序?ASP.Net、WinForm、WPF???@MattBurland我将对此进行检查,谢谢。@Habib我正在使用一个Windows窗体应用程序,此函数在一个按钮的单击事件中。使用P说明符时,数字将被乘以100。。您可以将“%”字符连接到字符串。这里有一些关于Hypister+1Thanks@RadioSpace的进一步阅读,我来看看!谢谢你,哈比卜。我使用了第二个选项,使用System.Globalization名称空间。向知识又迈进了一步。再次感谢所有曾经帮助过你的人!拥抱!