设有定义floatx=3.567,y;,则赋值使y为3.6的语句是:

设有定义floatx=3.567,y;,则赋值使y为3.6的语句是:

A) y= (int)(10*x+0.5)/10.0;

B) y= (int)(10*x)/10.0;

C) y= (int)(10*x)/10.0+0.5;

D) y= (%3.lf) х;
为什么是A,求解析

A是解决四舍五入的方法
10 * x+0.5之后是36.17,取整以后是36,除以10.0后是3.6
B。 10 * x是35.67,取整后是35,除以10.0后是3.5
C。前半部分和B一样,得到3.5,加上0.5后是4.0
D。放在printf中是可以的,但赋值的话语法不支持

35.67*10+0.5=36.17,然后将它强制转换为int型就变为36,float型转换为int型变量会舍弃小数部分,最后/10就变为了3.6