题目描述:
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。
解题思路:
将输入的float值转化成字符,判断小数点后一位数值是否大于等于5,然后使用字符串的split函数去整数部分
代码实现:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
float number = sc.nextFloat();
int outputNumber=0;
String numberStr = String.valueOf(number);
for(int i=1;i<numberStr.length();i++){
if(numberStr.charAt(i-1)=='.'&& numberStr.charAt(i)>='5'){
String numberInt[] = numberStr.split("\\.");
outputNumber = Integer.parseInt(numberInt[0])+1;
}
if(numberStr.charAt(i-1)=='.'&& numberStr.charAt(i)<'5'){
String numberInt[] = numberStr.split("\\.");
outputNumber = Integer.parseInt(numberInt[0]);
}
}
System.out.println(outputNumber);
}
}
import java.util.Scanner;
import java.lang.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
float number = sc.nextFloat();
System.out.println(Math.round(number));
}
}
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
float number = sc.nextFloat();
System.out.println((int)(number+0.5));//其实是double强制转int,因为0.5后面没有加f
}
}