簡體   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