首页 > 其他分享 >【华为OJ7】取近似值

【华为OJ7】取近似值

时间:2022-11-22 12:37:36浏览次数:46  
标签:OJ7 String index int 华为 近似值 str sc 10


题目描述


写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于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;





标签:OJ7,String,index,int,华为,近似值,str,sc,10
From: https://blog.51cto.com/u_15886477/5877676

相关文章