2011-06-13 15 views
55

我怎麼能將數據從字符串轉換爲長在C#中?我怎麼能將數據從字符串轉換爲長在C#

我有數據

String strValue[i] ="1100.25"; 

現在我想在

long l1; 
+0

多頭代表整數。你已經給出了一個非整數。你想怎麼做? – 2011-06-13 12:21:14

+1

如果strValue是「1100.75」會怎麼樣?請參閱:http://stackoverflow.com/questions/633335/how-might-i-convert-a-double-to-the-nearest-integer-value – magma 2011-06-13 12:22:28

+0

@magma:如果你將它轉換成十進制然後將圓數字,即在這種情況下,如果給定的數字是1100.75,那麼它將輸出1101. – 2011-06-13 12:47:02

回答

29

如果你想要得到這個數字的整數部分,你必須先將其轉換爲浮動號碼,然後轉換爲長。

long l1 = (long)Convert.ToDouble("1100.25"); 

您可以使用Math類圍捕號碼,只要你喜歡,或者只是截斷......

+0

如果你在指定的輸入上運行這個命令,會給你'FormatException'。 – 2011-06-13 12:22:18

+1

@zespri,不,至少在大多數文化中不是這樣......但在小數分隔符不是「」的文化中確實會失敗。 – 2011-06-13 12:23:53

+0

感謝您的編輯。這個更好。 – 2011-06-13 12:28:21

1

長L1 = Convert.ToInt64(strValue中);

應該這樣做。

0

您還可以使用Int64.TryParse方法。如果它們是任何字符串值,但它不會產生錯誤,它將返回'0'。

Int64 l1; 

Int64.TryParse(strValue, out l1); 
3

long在內部表示爲System.Int64,它是一個64位有符號整數。 您採取的值「1100.25」實際上是十進制數,而不是整數,因此它不能轉換爲長整型。

您可以使用:

String strValue = "1100.25"; 
decimal lValue = Convert.ToDecimal(strValue); 

將其轉換爲十進制值

3

您將無法將其直接轉換爲長,因爲小數點,我認爲你應該把它轉換成十進制然後將其轉換成長這樣的東西:

String strValue[i] = "1100.25"; 
long l1 = Convert.ToInt64(Convert.ToDecimal(strValue)); 

希望這有助於!從MSDN

109
Convert.ToInt64("1100.25") 

方法簽名:

public static long ToInt64(
    string value 
) 
+2

這是我做到的。應該標記爲正確的答案。 – sanpaco 2013-10-17 18:55:07

+0

它會給字符串格式不正確的異常。 – 2016-11-18 10:57:34