首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在c#中将string euler number转换为int

问在c#中将string euler number转换为int
EN

Stack Overflow用户
提问于 2010-04-08 14:02:20
回答 3查看 631关注 0票数 0

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-04-08 14:07:44

您可以将字符串解析为双精度型,然后将双精度型转换为整数。

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

代码语言:javascript
复制
string s = "6.21129e+006";
double d = Double.Parse(s);
Console.WriteLine(s);

int i = (int)d;
Console.WriteLine(i);
票数 7
EN

Stack Overflow用户

发布于 2010-04-08 14:06:43

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

代码语言:javascript
复制
[Test]
public void Example()
{
    int num = (int)double.Parse("6.21129e+006");

    Assert.That(num, Is.EqualTo(6211290));
}
票数 4
EN

Stack Overflow用户

发布于 2010-04-08 14:08:16

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

代码语言:javascript
复制
var n = int.Parse("6.21129e+006", System.Globalization.NumberStyles.Float);

请注意,如果解析的数字是双精度型,例如为0.5的5e-1,则此操作将失败。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2597867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档