【发布时间】:2016-11-17 12:19:08
【问题描述】:
考虑以下代码:
double foo;
foo = 1/35;
然后foo 将等于0.02857142857(大约为十进制的1/35)还是0(整数除法)?这段代码是否可移植,换句话说,它是否已定义、保证行为,即在将 1/35 之类的东西分配给 double 时会执行浮点除法?
【问题讨论】:
-
它将产生一个零作为整数......你正在划分整数并且denom比分子更大
-
"那么 foo 是否等于..." 你不能测试一下吗?
-
结果将为 0。您需要将其中一个操作数转换为 double。
-
尽管有标题,但这段代码没有进行初始化。这是一个作业。
double foo = 1/35;将是初始化。
标签: c++ floating-point variable-assignment