[英]Why isn't my label displaying the number?
所以我知道我的计算可能很大。 但是,当我尝试计算与之相邻的文本框的输入立方时,它不会显示数字,但会显示字符串“ exp:”。
这种连接不起作用吗? 相反,如果太大,它只会显示“ EXP:”。
另外,我尝试了另一种方法,但是它将显示数字(即使它很大),但不会显示“ exp”。
for (int i = 0; i < textBoxes.Length; i++)
{
totalExp += Math.Pow(Convert.ToDouble(textBoxes[i].Text), 3.0) + 1;
labels[i].Text = "Exp: " + (Math.Pow(Convert.ToDouble(textBoxes[i].Text), 3.0) + 1).ToString("#,###.#####");
}
文本框属性是在我的最后一个问题上设置的( https://stackoverflow.com/a/20406828/2804613 )
我对标签做了完全相同的操作,因此它们位于文本框的右侧。
我尝试使用以下代码重现您的问题:
double thisExp = Math.Pow(Convert.ToDouble("1.37"), 3.0) + 1;
// totalExp += thisExp;
string Text = "Exp: " + thisExp.ToString("#,###.#####");
Console.WriteLine(Text);
它打印
Exp:3.57135
你可以在这里尝试
因此,这不是格式化问题。 我怀疑从字符串转换为双精度,但是我们需要更多信息。 特别是语言环境设置和确切的字符串内容。
再想一想:您能读回标签文本吗? 如果将标签大小设置得太窄,则可能只显示前几个字符。
解释我的评论:
for (int i = 0; i < textBoxes.Length; i++)
{
var exp = Math.Pow(Convert.ToDouble(textBoxes[i].Text), 3.0) + 1;
totalExp += exp;
labels[i].Text = "Exp: " + exp.ToString("#,###.#####");
}
更好的方法是使用String.Format()
for (int i = 0; i < textBoxes.Length; i++)
{
var exp = Math.Pow(Convert.ToDouble(textBoxes[i].Text), 3.0) + 1;
totalExp += exp;
labels[i].Text = String.Format("Exp: {0:#,###.#####}", exp);
}
并确保将标签的AutoSize
属性设置为True
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.