我的意思是,我想轉換此:如何使用Convert.ChangeType()時conversionType是十進制和輸入爲「40.00」
string a = "40.00";
Convert.ChangeType(a, typeof(decimal))
的結果是「4000」
一個十進制值問題在於,轉換調用在xmlToObject轉換器中是非常抽象的泛型方法。我不想以編程方式添加很多不同的例外以正確轉換。
關於克里斯
我的意思是,我想轉換此:如何使用Convert.ChangeType()時conversionType是十進制和輸入爲「40.00」
string a = "40.00";
Convert.ChangeType(a, typeof(decimal))
的結果是「4000」
一個十進制值問題在於,轉換調用在xmlToObject轉換器中是非常抽象的泛型方法。我不想以編程方式添加很多不同的例外以正確轉換。
關於克里斯
小數點可能不會被當前文化中的句點字符表示。
在一般情況下,進行區域性不變的轉換時,最好到指定CultureInfo.InvariantCulture爲IFormatProvider
參數傳遞給method:
(decimal) Convert.ChangeType(a, typeof(decimal), CultureInfo.InvariantCulture);
的轉化利用,使用期限爲千位分隔符文化最有可能完成而不是小數點分隔符。
指定文化,當你轉換值:
Convert.ToDecimal(a, CultureInfo.InvariantCulture)
下面的代碼
string s = "40.00";
decimal d = (decimal)Convert.ChangeType(s, typeof(decimal));
使得d = 40。這看起來對我罰款。你的問題到底是什麼?
編輯: 看來你可能有一個與使用的文化問題。 對此進行轉換:
string s = "40.00";
decimal d = (decimal)Convert.ChangeType(s, typeof(decimal), CultureInfo.InvariantCulture);
「40,00」是否正確轉換? – Joe
你們需要改變你的文化背景...... – nawfal