我想解析一個字符串爲long值爲1.0010412473392E + 15.但它給出了一個異常輸入字符串沒有在一個正確的格式。要做到這一點。解析一個字符串
這兩個答案的工作方式是如何選擇它們作爲答案。
我想解析一個字符串爲long值爲1.0010412473392E + 15.但它給出了一個異常輸入字符串沒有在一個正確的格式。要做到這一點。解析一個字符串
這兩個答案的工作方式是如何選擇它們作爲答案。
時退房System.Globalization.NumberStyles
枚舉在Int64.Parse適當超載。如果指定System.Globalization.NumberStyles.Any
,它應該工作:
long v = Int64.Parse(s, System.Globalization.NumberStyles.Any);
但請注意,您在解析數已精度的限制,(只有13位小數,但被指定爲E + 15)。此外,「任何」枚舉可能超過您真正需要 - 在這種情況下,您只需要AllowDecimalPoint
和AllowExponent
:
long v = Int64.Parse(s, System.Globalization.NumberStyles.AllowDecimalPoint | System.Globalization.NumberStyles.AllowExponent);
您確定不想要解析double
嗎?
var myDouble = double.Parse(myString);
然後您可以嘗試轉換爲long
。
var myLong = Convert.ToInt64(myDouble);