题目
我的题解
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String str;
while ((str = bf.readLine()) != null) {
String[] arr = str.split("\\.");
String num = arr[1].substring(0, 1);
if (Integer.parseUnsignedInt(num) >= 5) {
System.out.println(Integer.parseUnsignedInt(arr[0]) + 1);
} else {
System.out.println(Integer.parseUnsignedInt(arr[0]));
}
}
}
}
总结:
1、 String[] arr = str.split("\\."); 第一次编译没过就是因为正则没写对
参考题解
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String str;
while ((str = bf.readLine()) != null) {
double number = Double.parseDouble(str);
System.out.println((int)(number + 0.5));
}
}
}
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String str;
while ((str = bf.readLine()) != null) {
float number = Float.parseFloat(str);
System.out.println((int)(number + 0.5));
}
}
}
总结:
1、类型转换就是向下取整、很巧妙的利用这种方式
double number = Double.parseDouble(str);
System.out.println((int)(number + 0.5));
float number = Float.parseFloat(str);
System.out.println((int)(number + 0.5));