为什么以下代码的输出等于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?
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
Jac*_*cob 31
7/9*9将这些数字评估为整数,因此7/9的计算结果为0,0*9 = 0.
当你使它们浮动时,你正在执行预期的计算.
尝试7.0/9*9得到7,然后你将进行浮点运算.
在C中,当您对整数进行除法时,其余部分将被丢弃.在这里,你正在做7/9,然后取结果并乘以9.在步骤中,接下来是C的想法:
7 / 9 = 0
0 * 9 = 0
Run Code Online (Sandbox Code Playgroud)
使用浮动时,它可以正常工作,因为其余部分不再被丢弃.
在:
cout << 7 / 9 * 9;
Run Code Online (Sandbox Code Playgroud)
你正在做整数运算.所以7/9是0而0*9是0.
要使用浮点运算(这是您在第二个示例中使用的),您要执行以下操作:
cout << 7.0 / 9 * 9;
Run Code Online (Sandbox Code Playgroud)