簡體   English   中英

C#類型轉換

[英]C# type conversion

dr["po_amt"].ToString() = 1,936.10;

當我嘗試使用以下代碼將此轉換為int32時,

Convert.ToInt32(dr["po_amt"].ToString());

它拋出錯誤的輸入字符串,格式不正確。 我怎樣才能做到這一點

您正在嘗試將“ 1,936.10”轉換為整數。 那顯然不是整數。 您應該將其解析為浮點數(例如,使用decimal.TryParse ),然后,如果您確實確實想要一個整數,則隨后應用您想要獲得整數的任何轉換。

float.TryParse double.TryParse ,我強烈建議您在float.TryParsedouble.TryParse上使用decimal.TryParse 。很明顯,該字符串以十進制表示一個數字,因此這是最適合使用的類型。)

轉換為decimal ,應指定不變的區域性(如果您所在的區域使用“。”表示千位分隔符,使用“,”作為小數分隔符),並且顯式指定數字也無妨樣式,允許成千上萬。

您不能將1,936.10轉換為整數,但是可以將其轉換為浮點然后進行1,936.10轉換:

(Int32) Convert.ToDouble("1,936.10", CultureInfo.InvariantCulture)

請注意,在浮點數格式不同的語言環境中運行時,請使用CultureInfo以避免出現問題。

轉換浮點數將截斷小數部分。 如果需要四舍五入,則應在Math.Round()前應用Math.Round()

將其轉換為Double並將其轉換為int

int i = (int)Convert.ToDouble("1203.12");

作品:-)

嘗試解析為float,然后轉換為Int32:

var d = float.Parse("1936,10");
Convert.ToInt32(d);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM