题解 | #四舍五入#
四舍五入
https://www.nowcoder.com/practice/cae89de6292b4084acb93659353260e0
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double d= scanner.nextDouble(); //write your code here...... /* 方法一: int i = (int)(d + 0.5); 或者 int i = (int)Math.round(d); 但是这样遇到像 14.49 这样的输入就不行,输出为 14 ,并没有 从小数点后第二位开始进位 */ //改进方法二: //以 14.49 为例,第一步先将14.49 * 10 + 0.5 = 144.9 + 0.5进位, //得145.54 double one = (d * 10 + 0.5); //第二步145.4 / 10 + 0.5 = 14.54 +0.5进位,得15.04 double two = ((one / 10) + 0.5); //int强制转换的15 int i = (int)two; System.out.println(i); } }