当前位置:  开发笔记 > 编程语言 > 正文

如果语句执行时,我认为它不应该是 - C++

如何解决《如果语句执行时,我认为它不应该是-C++》经验,为你挑选了1个好方法。

我有以下代码:

int32 var1 = 81;
double var2 = 2;
if ((var1/10) < (var1 + var2) / 10)
{
    some code to execute;
}

除了我的理解之外,在划分它时会删除余数,所以if语句应该解析为"如果8 <8然后执行",所以不应该执行但是确实如此,这里有点难过.是因为我使用的是不同的变量类型吗?

我已经尝试分别打印(var1/10)和(var1 + var2)/ 10的结果,它们都输出8到控制台.



1> Bathsheba..:

是因为我使用的是不同的变量类型吗?

对,那是正确的:

var1/108(整数除法)

(var1 + var2) / 108.3(浮点除法; var1升级为浮点).

在评价中if,8被提升为浮点数.

8.0 < 8.3true.所以if语句执行.


它们都输出8到控制台.

不,他们没有.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有