我有一个帐号,存储在查询字符串中。如何将6.21129e + 006转换为实际的int
答案 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
。