在c#中将字符串euler数转换为int

时间:2010-04-08 06:02:20

标签: c#

我有一个帐号,存储在查询字符串中。如何将6.21129e + 006转换为实际的int

3 个答案:

答案 0 :(得分:7)

您可以将字符串解析为double,然后将double转换为integer。

但是,从double转换为整数会导致精度丢失甚至整数溢出

string s = "6.21129e+006";
double d = Double.Parse(s);
Console.WriteLine(s);

int i = (int)d;
Console.WriteLine(i);

答案 1 :(得分:4)

假设您确定结果可以转换为整数,您可以将其解析为double并转换为int:

[Test]
public void Example()
{
    int num = (int)double.Parse("6.21129e+006");

    Assert.That(num, Is.EqualTo(6211290));
}

答案 2 :(得分:2)

您可以在NumberStyles.Float方法上使用int.Parse参数:

var n = int.Parse("6.21129e+006", System.Globalization.NumberStyles.Float);

请注意,如果解析的数字是双精度数,则会失败,例如5e-1 0.5