dr["po_amt"].ToString() = 1,936.10;
當我嘗試轉換該使用下面的代碼爲int32,C#類型轉換
Convert.ToInt32(dr["po_amt"].ToString());
它引發錯誤輸入字符串的不正確的格式。我如何實現這一點
dr["po_amt"].ToString() = 1,936.10;
當我嘗試轉換該使用下面的代碼爲int32,C#類型轉換
Convert.ToInt32(dr["po_amt"].ToString());
它引發錯誤輸入字符串的不正確的格式。我如何實現這一點
將其轉換爲雙並將其轉換爲int
int i = (int)Convert.ToDouble("1203.12");
作品:-)
您試圖將「1,936.10」轉換爲整數。很明顯,不是的整數。您應該將其解析爲浮點數(例如使用decimal.TryParse
),然後應用任何想要獲得整數的轉換,如果確實確實需要需要整數。
(我會強烈建議您使用decimal.TryParse
在float.TryParse
或double.TryParse
,順便說一句,顯然該字符串表示十進制一些,所以這是最合適的類型使用。)
當轉換爲decimal
時,您應該指定不變的文化(如果您位於使用「。」作爲千位分隔符並且「,」作爲小數點分隔符的區域),並且不會顯式指定數字風格,允許數千人。
您不能轉換1,936.10
爲整數,但你可以將其轉換爲浮動點,然後將它轉換:
(Int32) Convert.ToDouble("1,936.10", CultureInfo.InvariantCulture)
注意使用CultureInfo
,以避免當你在一個語言環境中運行的問題,其中浮點數格式是不同的。
投射浮點數將截斷小數部分。如果你需要圍繞它,你應該在施放之前應用Math.Round()
。
我認爲這是這種情況的最佳解決方案 – 2010-09-21 11:41:48
除了Skeet對'decimal'是正確的。 – 2010-09-21 12:12:35
嘗試解析到浴液從而轉換成的Int32:
var d = float.Parse("1936,10");
Convert.ToInt32(d);
嗯,這是不是一個整數值,所以你不能把它轉換爲整數。你想對價值做什麼? – 2010-09-21 11:37:41
dr [「po_amt」]中的值的類型是什麼?如果是這種情況,將該值轉換爲字符串只是爲了將其解析回它的類型。 – dtb 2010-09-21 11:42:44