一道与强制转换和浮点数有关的问题

来自教材上的一道课后习题。
有以下问题:
1.a+b*(int)x%4的最终运算结果是什么?
2.为什么所有算出来的浮点数在输出的时候都没有显示6位小数,而是显示的有效数字?

img

1.这就是个纯四则混合运算,有括号先算括号,所以是先算强制转换,把x转换成了int,值是2
然后先乘除后加减,%是取余数,它跟除法的运算优先级一样
所以先算9*2%4,得2
最后算2+2=4
2.%f输出的时候就是按有效数字输出啊,如果小数点超出了6位,则只显示6位。你想固定按小数点6位输出,要写%.6f呀