写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。
数据范围:保证输入的数字在 32 位浮点数范围内
输入一个正浮点数值
输出该数值的近似整数值
5.5
6
0.5>=0.5,所以5.5需要向上取整为6
2.499
2
0.499<0.5,2.499向下取整为2
import java.math.BigDecimal; import java.util.Scanner; /** * 取近似值 * 解题思路:熟练运用Math.round()方法或者BigDecimal的divide方法 */ public class Main { public static void main(String[] args) { testOne(); // testTwo(); } private static void testOne() { Scanner scan = new Scanner(System.in); double input = scan.nextDouble(); System.out.println(Math.round(input)); } private static void testTwo() { Scanner scan = new Scanner(System.in); double input = scan.nextDouble(); BigDecimal inputDec = new BigDecimal(input + ""); System.out.println(inputDec.divide(new BigDecimal("1"), 0, BigDecimal.ROUND_HALF_UP)); } }
package main import ( "fmt" ) func main() { var res float32 fmt.Scan(&res) fmt.Println(int(res+0.5)) }
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ double num = sc.nextDouble(); System.out.println(getNum(num)); } } public static int getNum(double num){ return (int) Math.floor(num + 0.5); } }
python3
n = list(input().split('.')) n_1 = int(n[0]) n_2 = int(n[1]) if n_2 >= 5: n_1 += 1 print(n_1)
#include<iostream> using namespace std; int main(){ float a; cin>>a; int b=(int)(a*10); if(b%10>=5) cout<<b/10+1<<endl; else cout<<b/10<<endl; }
int main() { float a; cin >> a; cout << round(a) << endl; return 0; }
#include <iostream> #include <string> #include <algorithm> using namespace std; int main() { float num; int res = 0; while (cin >> num){ string tmp = to_string(num); if (stoi(tmp.substr(2, 1)) >= 5) cout << ceil(num) << endl; else cout << floor(num) << endl; } return 0; }
//这个题的思路很简单,也很容易实现。可以使用强制类型转换运算来实现向下取整或者向上取整, //注意一个细节:强制类型转换运算是一种严格取整运算,它的原则不是四舍五入,对于小数, //最后的返回都会是整数部分,在C语言中强制类型转换是用括号加类型符如(int)a,标准C++的 //强制类型转换是static_cast<int>(a); #include<iostream> using namespace std; int main() { double num; while(cin>>num) { cout<<static_cast<int>(num+0.5)<<endl; } return 0; } /* int main() { double num; while(cin>>num) { int n=static_cast<int>(num); if(num-n>=0.5) cout<<n+1<<endl; else cout<<n<<endl; } return 0; } */