C语言:设有定义:float x=123.4567;,则执行以下语句后的输出结果是 【 】 .设有定义:float x=123.4567;,则执行以下语句后的输出结果是 【 】 .printf("%f\n",(int)(x*100+0.5)/100.0);答案是123.460000 可是不是
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 05:36:32
C语言:设有定义:float x=123.4567;,则执行以下语句后的输出结果是 【 】 .设有定义:float x=123.4567;,则执行以下语句后的输出结果是 【 】 .printf("%f\n",(int)(x*100+0.5)/100.0);答案是123.460000 可是不是
C语言:设有定义:float x=123.4567;,则执行以下语句后的输出结果是 【 】 .
设有定义:float x=123.4567;,则执行以下语句后的输出结果是 【 】 .
printf("%f\n",(int)(x*100+0.5)/100.0);
答案是123.460000 可是不是强制转换为整型了吗?为什么小数点后会有那么多位?还有就是单精度变量和双精度变量小数点后各有几位啊?
C语言:设有定义:float x=123.4567;,则执行以下语句后的输出结果是 【 】 .设有定义:float x=123.4567;,则执行以下语句后的输出结果是 【 】 .printf("%f\n",(int)(x*100+0.5)/100.0);答案是123.460000 可是不是
LZ注意,先不管是不是输出
对于(int)(x*100+0.5)/100.0这个算式
被强制转换为整型的是分子部分,而分子除以100.0这个浮点型的数据之后整个算式就又变回浮点型了,要输出的数据真是整型也没事,因为你现在是按float型输出,它会再次强制转换数据
单精度浮点型在输出时保留小数点后6位
双精度浮点型在输出时保留小数点后12位
这里是%f,所以是单精度,应保留6位小数
若是双精度,就是%lf
若想保留例如4位小数,则是%.4f
不知LZ明白了没
欢迎提问