NowCode:HJ7 取近似值

题目:取近似值

描述

写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。

数据范围:保证输入的数字在 32 位浮点数范围内

输入描述:

输入一个正浮点数值

输出描述:

输出该数值的近似整数值

示例1

1
2
3
4
5
6
7
8
输入:
5.5

输出:
6

说明:
0.5>=0.5,所以5.5需要向上取整为6

示例2

输入:

1
2.499

输出:

1
2

说明:

1
0.499<0.5,2.499向下取整为2   

题解1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;

int main() {
float input = 0.0;
cin >> input;
int lowVal = static_cast<int>(input);
float little = input - lowVal;
if (little >= 0.5) {
cout << lowVal + 1;
} else {
cout << lowVal;
}
}

题解2

1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;

int main() {
float input = 0.0;
cin >> input;
int val = static_cast<int>(input + 0.5);
cout << val;
}

思路

解法1先向下取整在比较小数部分是否小于0.5

解法2绝了 通过+0.5后取整,思路很棒

此题简单