首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么cout <<的输出是7/9*9;是零?

为什么cout <<的输出是7/9*9;是零?
EN

Stack Overflow用户
提问于 2009-10-08 21:10:53
回答 6查看 3.3K关注 0票数 4

为什么以下代码的输出等于0或serven?

代码语言:javascript
复制
cout << 7/9*9;   //output 0 (zero)   why?

float nine = 9;
float seven = 7;
float i = seven/nine*nine;
cout << i     //output 7   Why?

谢谢你的帮助。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-10-08 21:12:59

7/9*9将这些数字计算为整数,因此7/9的计算结果为0,0*9 = 0。

当您使它们浮动时,您正在执行预期的计算。

尝试7.0/9*9得到7,然后您将进行浮点运算。

票数 31
EN

Stack Overflow用户

发布于 2009-10-08 21:13:30

在C中,当你除以整数时,余数会被丢弃。在这里,你做7/ 9,然后取其结果并乘以9。在步骤中,这是C的想法:

代码语言:javascript
复制
7 / 9 = 0
0 * 9 = 0

当您使用浮点数时,它可以正常工作,因为剩余部分不再被丢弃。

票数 6
EN

Stack Overflow用户

发布于 2009-10-08 21:14:30

在:

代码语言:javascript
复制
cout << 7 / 9 * 9;

你正在做整数运算。所以7/9是0,0*9是0。

要使用浮点算法(这是您在第二个示例中使用的算法),您需要执行以下操作:

代码语言:javascript
复制
cout << 7.0 / 9 * 9;
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1540515

复制
相关文章

相似问题

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