floorВозвращает наибольшее целое число, не превышающее аргумент.

roundЭто расчет округления «половина вверх», при котором округление идет вверх до большего целого числа.

roundозначаетокругление", алгоритм —Math.floor(x+0.5), то есть прибавить 0.5 к исходному числу и затем floor, поэтомуMath.round(11.5)результат равен 12, а результат Math.round(-11.5) равен -11.

Давайте сначала посмотрим на вывод методов Java Math floor, ceil, rint и round на следующем примере:

Test.java

import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Введите число с плавающей запятой:"); while(sc.hasNext()){ double num = sc.nextDouble(); System.out.println("Math.floor(" + num + ") = " + Math.floor(num)); System.out.println("Math.ceil(" + num + ") = " + Math.ceil(num)); System.out.println("Math.rint(" + num + ") = " + Math.rint(num)); System.out.println("Math.round(" + num + ") = " + Math.round(num)); } } }

Запустите приведённую выше программу, чтобы проверить вывод:

$ javac Test.java 
$ java Test
输入一个浮点数:
2.2
Math.floor(2.2) = 2.0
Math.ceil(2.2) = 3.0
Math.rint(2.2) = 2.0
Math.round(2.2) = 2
-2.2
Math.floor(-2.2) = -3.0
Math.ceil(-2.2) = -2.0
Math.rint(-2.2) = -2.0
Math.round(-2.2) = -2
-2.5
Math.floor(-2.5) = -3.0
Math.ceil(-2.5) = -2.0
Math.rint(-2.5) = -2.0
Math.round(-2.5) = -2
2.5
Math.floor(2.5) = 2.0
Math.ceil(2.5) = 3.0
Math.rint(2.5) = 2.0
Math.round(2.5) = 3
2.7
Math.floor(2.7) = 2.0
Math.ceil(2.7) = 3.0
Math.rint(2.7) = 3.0
Math.round(2.7) = 3
-2.7
Math.floor(-2.7) = -3.0
Math.ceil(-2.7) = -2.0
Math.rint(-2.7) = -3.0
Math.round(-2.7) = -3

Проанализируйте вывод

1, Math.floor()Округление вниз, то есть наибольшее целое число, меньшее этого числа.

Math.floor(2.2) = 2.0;  
Math.floor(-2.2) = -3.0;  
Math.floor(2.5) = 2.0;  
Math.floor(-2.5) = -3.0;  
Math.floor(2.7) = 2.0;  
Math.floor(-2.7) = -3.0; 

2, Math.ceil()Округление вверх, то есть наименьшее целое число, большее этого числа.

Math.ceil(2.2) = 3.0;  
Math.ceil(-2.2) = -2.0;  
Math.ceil(2.5) = 3.0;  
Math.ceil(-2.5) = -2.0;  
Math.ceil(2.7) = 3.0;  
Math.ceil(-2.7) = -2.0;

3, Math.rint()Возвращает целое число, ближайшее к значению.

Примечание:Если таких целых чисел два, возвращаетчётное.。

4, Math.round() округление, но когда аргумент отрицательный, это нелегко понять. Прямой просмотр исходного кода должен облегчить понимание. Обратите внимание, что тип возвращаемого значения — целое число.

Math.round(x) = Math.floor(x + 0.5)  

Вставьте приведённый выше код в следующий пример для тестирования:

Math.round(2.2) = 2;  
Math.round(-2.2) = -2;  
Math.round(2.5) = 3;  
Math.round(-2.5) = -2;  
Math.round(2.7) = 3;  
Math.round(-2.7) = -3  

Ссылка: https://blog.csdn.net/u012050154/article/details/52448260