java-----------华为机试------取近似值
题目描述
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。
输入描述:
输入一个正浮点数值
输出描述:
输出该数值的近似整数值
输入例子:
5.5
输出例子:
6
我已经好长时间没见过这么水的题了。。。。。
解法一:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
double dou = sc.nextDouble();
//输入一个浮点数
int a=(int)dou; //强制类型转化取得整数部分
double dot = dou -a; //浮点数减去整数部分为小数部分
if(dot>=0.5){ //判断小数部分是否不小于0.5;
System.out.println(a+1); //向上
}else{
System.out.println(a); //向下。。。
}
}
}
}
解法二:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double a = scanner.nextDouble();
System.out.println(String.format("%.0f", a));
}
}
解法3:import java.util.Scanner;
import java.util.*;
import java.math.*;
public class Main{
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
float number=scan.nextFloat();
System.out.println(Math.round(number));//Math.,round 是四舍五入函数
}
}