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 是四舍五入函数
        }
    }



posted @ 2017-04-24 18:16  过道  阅读(175)  评论(0)    收藏  举报