若有以下程序段 double x=5.16894; printf("%f\n", (int)(x*1000+0.5)/(double)1000 ); 则程序段的输出结果是

admin2020-05-19  23

问题 若有以下程序段
double x=5.16894;
printf("%f\n",  (int)(x*1000+0.5)/(double)1000  );
则程序段的输出结果是

选项 A、5.170000
B、5.175000
C、5.169000
D、5.168000

答案C

解析 %f的输出格式是以带小数点的数学形式输出浮点数。首先计算x*1000,结果为5168.94然后+0.5,结果为5169.44,然后进行强制类型转换,转换成整型为5169,然后除以双精度数据1000,结果也为双精度数据5.169,输出时按照%f的格式输出,所以输出结果为5.169000。
转载请注明原文地址:https://jikaoti.com/ti/V9G0FFFM
0

最新回复(0)