繁体   English   中英

为什么我的标签上没有显示数字?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM