首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在for循环中使用科学记数法

在for循环中使用科学记数法
EN

Stack Overflow用户
提问于 2016-06-20 16:31:59
回答 1查看 5.5K关注 0票数 55

我最近遇到了一些代码,它们的循环形式为

for (int i = 0; i < 1e7; i++){
}

我质疑这样做是否明智,因为1e7是一个浮点类型,并且会导致i在计算停止条件时被提升。这应该引起人们的关注吗?

EN

回答 1

Stack Overflow用户

发布于 2016-06-20 16:37:28

假设您的int至少为32位,它将会工作。

然而,如果你真的想使用指数表示法,你最好在循环之外定义一个整数常量,并使用正确的类型转换,如下所示:

const int MAX_INDEX = static_cast<int>(1.0e7);
...
for (int i = 0; i < MAX_INDEX; i++) {
    ...
}

考虑到这一点,我会说写下

const int  MAX_INDEX = 10000000;

或者,如果您可以使用C++14

const int  MAX_INDEX = 10'000'000;
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37917806

复制
相关文章

相似问题

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