为什么以下代码的输出等于0或serven?
cout << 7/9*9; //output 0 (zero) why?
float nine = 9;
float seven = 7;
float i = seven/nine*nine;
cout << i //output 7 Why?谢谢你的帮助。
发布于 2009-10-08 21:12:59
7/9*9将这些数字计算为整数,因此7/9的计算结果为0,0*9 = 0。
当您使它们浮动时,您正在执行预期的计算。
尝试7.0/9*9得到7,然后您将进行浮点运算。
发布于 2009-10-08 21:13:30
在C中,当你除以整数时,余数会被丢弃。在这里,你做7/ 9,然后取其结果并乘以9。在步骤中,这是C的想法:
7 / 9 = 0
0 * 9 = 0当您使用浮点数时,它可以正常工作,因为剩余部分不再被丢弃。
发布于 2009-10-08 21:14:30
在:
cout << 7 / 9 * 9;你正在做整数运算。所以7/9是0,0*9是0。
要使用浮点算法(这是您在第二个示例中使用的算法),您需要执行以下操作:
cout << 7.0 / 9 * 9;https://stackoverflow.com/questions/1540515
复制相似问题