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