题目描述
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。
import java.util.Scanner;
public class Main{
private static int getApproxiateNumber(float num){
String str=String.valueOf(num);
int index=0;
//12.5 获取小数点后第一位数字 5
while(str.charAt(index)!='.'){
index++;
}
//12.5 获取小数点前的数字 12
String strN=str.substring(0,index);
//转化成字符串
int n=Integer.parseInt(strN);
//判断>5 向上取整
if(str.charAt(index+1)>='5'){
return n+1;
}
//否则不变
return n;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
float n2=sc.nextFloat();
int n=getApproxiateNumber(n2);
System.out.println(n);
}
sc.close();
}
}
简单的方法:12.6: 12.6*10+5=131,131/10=13
所以代码是:
return (int)(num*10+5)/10;