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名称空间。向知识又迈进了一步。再次感谢所有曾经帮助过你的人!拥抱!