Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将指数转换为整数_C#_Parsing_Exponential - Fatal编程技术网

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
标志;没有必要在它上面加上那个标志。