题解 | #取近似值#
取近似值
https://www.nowcoder.com/practice/3ab09737afb645cc82c35d56a5ce802a
#include <stdio.h> int main(void){ float fudian; while(scanf("%f", &fudian) != EOF){ int result = (int)fudian; if(fudian - result >= 0.5){ result++; } printf("%d\n", result); } }
一、问题分析
首先读题,仔细看描述中的内容发现需求是
1.接受一个正浮点数值
2.对这个数值进行取整,小数点后一位数字四舍五入
范围:32位浮点数
二、解题思路
1.首先我们需要接受这个正浮点数,使用float类型即可
2.对这个数字进行取整(可以直接printf("%.0f",要取整的数字))其中.后面的数字代表保留几位小数,自动四舍五入
三、具体步骤
使用的语言是C
先引入输入输出库#include <stdio.h>
开始主程序int main(void){
定义一个float fudian;
读取输入while(scanf("%f", &fudian) != EOF){
输出printf("%.0f\n", fudian);
}
}
实际输入的时候,错了
当输入为4.5的时候这个代码的结果是4而不是5,
看来还需要做一下检查,先把fudian转化为int
定义一个int result来作为= (int)fudian;的变量容器
然后我们做一下比较,因为int会直接把小数点后的数字变成没有所以
如果if(我们fudian - result >= 0.5){证明我们的小数部分大于等于0.5,需要入一位
result++;入一位
}
之后还需要注意的是,这回我们输出的就是整数result了