2011-12-27 58 views
3

大家好,我正在做一個程序,以圓形文本框中輸入的文本。採樣輸入任何一個可以告訴我如何格式文本框的文本值

Entered value  output value 
    100    100.00 
    50     50.00 

喜歡我想格式化的textBox1_Leave事件我的文本框的值

我試過,但我沒有工作

private void textBox1_Leave(object sender, EventArgs e) 
{ 
    string str = string.Format(textBox1.Text, "##.00"); 
    textBox1.Text = str; 
} 

任何一個可以幫助我

+0

首先,你的例子並不真正顯示四捨五入。你的意思*「它不適合我」*? – Yuck

+0

當你說「沒有工作」時,這意味着什麼? –

+0

我沒有得到預期的結果 – Chaitanya

回答

6

您需要將該字符串轉換爲數字,,然後調用格式。此外,您正在使用格式不正確。你需要使用一個佔位符,像這樣

string str = String.Format("{0:F2}", Double.Parse(textBox1.Text)); 
textBox1.Text = str; 

當然,如果你輸入非數字輸入,這將會嘔吐。爲了做到這一點,你可以做一些基本的驗證

double d = 0;    
textBox1.Text = 
     Double.TryParse(textBox1.Text, out d) ? String.Format("{0:F2}", d) : "0"; 
+0

你確定ToString()可以這樣調用嗎?文本是stype字符串,而ToString現在只接受Formatprovider。我認爲你必須轉換爲雙或任何有一個ToString重載接受格式字符串 – rene

+0

沒有爲我工作 – Chaitanya

+0

@rene - 我*是肯定的,直到我測試它,然後我不太確定:) - 它現在修復了 –

3

問題是你的文本框的值已經是一個字符串。試試這個:

private void textBox1_Leave(object sender, EventArgs e) 
{ 
    var input = Convert.ToDouble(textbox1.Text); 
    textBox1.Text = input.Tostring("#.00"); 
} 

注意:你會想要捕捉轉換的格式異常incase輸入不是一個數字。

相關問題