1019:浮点数向零舍入
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
输入一个单精度浮点数,将其向零舍入到整数。说明:向零舍入的含义是,正数向下舍入,负数向上舍入。提示:可以使用强制类型转换来实现。
【输入】
一个单精度浮点数。
【输出】
一个整数,即向零舍入到整数的结果。
【输入样例】
2.3
【输出样例】
2
说明:
主要考查学生能否灵活运用强制类型转换。
首先要了解正数和负数,以及它们的关系,尤其是还没有学过负数的小学生。
正数,就是平时常见的数,例如1、2、3.456等。
负数,其实就是在正数的左边加上一个负号(-)。例如-2、-8.9等。
0既不是正数,也不是负数,可以认为0是正数和负数的分隔:
... -3 -2 -1 0 1 2 3 ...
大小关系:
正数 > 0 > 负数
3 > 2 > 1
-1 > -2 > -3
1.2 > 1.1
-1.1 > -1.2
很明显,越靠右的数越大,越靠左的数越小。
其实,正数也是有正号(+),不过一般忽略不写,例如+3。
思路分析:
正数向下舍入和负数向上舍入,意思就是把小数部分去掉,剩整数部分。题目也提示:使用强制类型转换来实现。
虽然float的取值范围比int的大,不过这题不会有超出int类型取值范围的数,因为float的精度问题。
求解过程:
声明并输入一个单精度浮点型float变量。
使用强制类型转换该变量并输出。
参考代码 - C++:
#include <iostream>
using namespace std;
int main()
{
float a;
cin >> a;
cout << int(a);
return 0;
}
参考代码 - C语言:
#include <stdio.h>
int main()
{
float a;
scanf("%f", &a);
printf("%d", (int)a);
return 0;
}