C# 将指数转换为整数
我有以下字符串:C# 将指数转换为整数,c#,parsing,exponential,C#,Parsing,Exponential,我有以下字符串:2.2000000000e+09 如果我这样做: float.Parse("2.200000000000E+09") = 2.2E+9 如果我这样做: Int64.Parse("2.200000000000E+09") 我期待着: 2200000000 相反,我得到了一个格式异常,那么什么是将指数转换为整数的最简单方法呢?您应该使用System.Globalization.NumberStyles.Float例如: Int64.Parse("2.200000000000E+
2.2000000000e+09
如果我这样做:
float.Parse("2.200000000000E+09") = 2.2E+9
如果我这样做:
Int64.Parse("2.200000000000E+09")
我期待着:
2200000000
相反,我得到了一个格式异常,那么什么是将指数转换为整数的最简单方法呢?您应该使用
System.Globalization.NumberStyles.Float
例如:
Int64.Parse("2.200000000000E+09", System.Globalization.NumberStyles.Float);
您应该使用
System.Globalization.NumberStyles.Float
如:
Int64.Parse("2.200000000000E+09", System.Globalization.NumberStyles.Float);
您可以使用
decimal x = decimal.Parse("2.200000000000E+09", NumberStyles.Float);
您可以使用
decimal x = decimal.Parse("2.200000000000E+09", NumberStyles.Float);
你可以使用
System.Globalization.NumberStyles.Any
当然也可以使用其他合适的,但这一个似乎更安全…这似乎是原始海报所要求的。重载隐式地使用NumberStyles.Integer
,这不适合所讨论的字符串。阅读超载了解更多信息。你可以使用System.Globalization.NumberStyles。当然可以使用任何或其他合适的,但这一个似乎更安全…这似乎是原始海报所要求的。重载隐式地使用NumberStyles.Integer
,这不适合所讨论的字符串。有关更多信息,请阅读过载说明。+1表示过载。我认为默认情况下,Float
包含指数。但是您仍然可以将此字符串解析为uint
或long
,而不存在溢出,但是需要使用numberstyle
标志。请注意,Float
已经包含AllowExponent
标志;没有必要在其上添加或显示该标志。+1表示。我认为默认情况下,Float
包含指数。但是您仍然可以将此字符串解析为uint
或long
,而不存在溢出,但是需要使用numberstyle
标志。请注意,Float
已经包含AllowExponent
标志;没有必要在它上面加上那个标志。