我想将一个字符串解析为 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)。此外,“Any”枚举可能超出您的实际需要 - 在这种情况下,您只需要 AllowDecimalPoint
和 AllowExponent
:
long v = Int64.Parse(s, System.Globalization.NumberStyles.AllowDecimalPoint | System.Globalization.NumberStyles.AllowExponent);
关于c# - 解析字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2054704/