這可能是一個非常簡單的問題。 假設文本框顯示值爲10,000.12當用戶錯誤地編輯數據時,他刪除了前兩個數字,如000.12,並在計算中使用該文本框,然後它會發出異常。我只需要一個驗證文本框。使用千位分隔符將字符串值轉換爲小數?
例如: string str =「,100.12;」 轉換爲 十進制數= 100.12;
任何想法?
當用戶移除任何千位分隔符時,它只顯示整數。
這可能是一個非常簡單的問題。 假設文本框顯示值爲10,000.12當用戶錯誤地編輯數據時,他刪除了前兩個數字,如000.12,並在計算中使用該文本框,然後它會發出異常。我只需要一個驗證文本框。使用千位分隔符將字符串值轉換爲小數?
例如: string str =「,100.12;」 轉換爲 十進制數= 100.12;
任何想法?
當用戶移除任何千位分隔符時,它只顯示整數。
這是非常搞砸了,我不知道,如果你的字符串看起來一樣,但如果他們這樣做可能做的伎倆:
string str = ",0,100.12";
decimal number;
bool converted = decimal.TryParse(str.Substring(str.LastIndexOf(",") + 1), out number);
變量converted
會告訴你是否而不是你的字符串被轉換,你不會出現異常。
祝你好運!
如果我明白了這個問題,你想刪除所有能夠防止解析例程失敗的字符。
string str = ",0,100.12";
var modified = new StringBuilder();
foreach (char c in str)
{
if (Char.IsDigit(c) || c == '.')
modified.Append(c);
}
decimal number= decimal.Parse(modified.ToString());
string a = "100.12";
decimal b = Convert.ToDecimal(a);
string str = ",0,100.12;";
var newstr = Regex.Replace(str,@"[^\d\.]+","");
decimal d = decimal.Parse(newstr, CultureInfo.InvariantCulture);
是分號* *真正的字符串的一部分?有*真的*領先的逗號嗎? –
'decimal n = decimal.Parse(str.Replace(',',''));'不知道你試圖做什麼。 – Leri
我認爲我們需要更好地理解可能的輸入數據。您的示例輸入似乎沒有任何意義。 –