设有定义:floatx=123.4567;则执行下列语句后的输出结果是—— printf("%f\n",(int)(x*100+0.5)/100.0);
人气:135 ℃ 时间:2020-06-07 02:55:30
解答
#define floatx 123.4567
main
{
#ifdef floatx
{
printf("%f\n",(int)(x*100+0.5)/100.0);
}
getchar();
}
兄弟看来你没有理解啊,我帮你细细的分析一下吧..
首先 printf("%f\n",(int)(x*100+0.5)/100.0);
%f是以单精度的形式输出,知道的吧?
(int)(x*100+0.5)/100.0中可以拆分来看,(int)(x*100+0.5)是一个强制类型转换成整型,结果为
(int)(123.4567*100+0.5)即等于(int)(12346.17)即等于12346
我们再分析12346/100.0即等于123.46,关键输出的结果要以单精度float的形式输出来,单精度的小数点精确为6位,即结果为123.460000
推荐
- float f=123.456; printf("%10.2f,%-10.1f\n",f,f);中的-10.1怎么解释
- 设有如下定义和执行语句,其输出结果为( ) int a=3,b=3; a = --b + 1; printf(“%d %d”,a,b)
- 原子核的人工转变与核反应的区别
- 加速度在数值上等于单位时间里速度的变化
- 例;丹凤眼.什么眉,什么鼻,什么嘴
- 已知X的二次方+Y的二次方=7.XY=—2.求5X的二次方—3XY—4Y的二次方—11XY—7X的二次方+2Y的二次方的值
- 43×27+73+43=?用简便算法应该怎么做
- 把y=x²-4x+1写成y=a(x-h)²+k的形式为,
猜你喜欢