2015-06-30 38 views
0
private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    decimal x = 0; 

    if (Decimal.TryParse(textBox1.Text, out x)) 
    { 
     var y = 1000000; 
     var answer = x * y; 

     displayLabel2.Text = x.ToString(); 
    } 
    else 
    { 
     displayLabel2.Text = "error"; 
    } 
} 

在我的代碼中,如果用戶輸入7.2,它將顯示7.2。如果您輸入0.72,則會如此顯示。等等。我試圖只採取2不是0的數字。我需要它作爲轉換的小數輸入。但是我需要把這兩個主要數字顯示出來。所以如果我輸入0.00072,我只需要顯示72.在文本中查找數字並顯示它們

捕捉是,如果我輸入0.001或0.0010,我需要顯示10.我不知道從哪裏開始。我嘗試使用長度來查找數字,但因爲我使用小數,所以無法使用「長度」。

回答

0
displayLabel2.Text=(x.ToString().Replace(".","").TrimStart(new Char[] {'0'})+"00").Substring(0,2) ; 
+0

我需要使用別的東西,因爲decimal不包含TrimStart –

+0

對不起,我忘了「ToString()」。代碼現在已更新。 – Graffito

+0

感謝這工作就像一個魅力。你碰巧知道我現在如何計算小數點前的零數量?我的意思是像我乘以我的x * y之後。一旦我乘以這些,我就會得到答案。現在我需要計算小數點前有多少個0。就好像我有72000.00。我需要顯示3,因爲在 –

2

你想要的是修剪前導零。這是可以做到象下面這樣:

var trimmedValue = x.ToString(CutlureInfo.InvariantCulture) 
        .TrimStart(new Char[] {'0'}); 
if(trimmedValue.Length == 1) trimmedValue = trimmedValue+"0"; 
displayLabel2.Text = trimmedValue; 
+0

這似乎需要多一點,即0.001應該輸出「10」 – BradleyDotNET

+0

你是正確的:)我沒有處理這種情況。我會更新我的帖子。 – Christos

+0

@BradleyDotNET我認爲現在沒問題。 – Christos

相關問題