Функция в java Math.ceil() должна округлять число при делении в большую сторону, т.е. вправо Так при делении 12/5 = 2.4, тогда Math.ceil(12/5) = 3; но:
public static void main(String[] args) {
System.out.println(Math.ceil(12/5));
}
Выводит мне 2.0 , Math.floor(12/5) тоже выводит 2.0 Может я не правильно понимаю, как они работают?
Для удобства любого округления лучше всего использовать класс BigDecimal
:
new BigDecimal(12.0/5).setScale(0, RoundingMode.CEILING).doubleValue();
Первый параметр указывает до какого знака округление, а второй - правило округления.
Дело в том, что 12/5
- само по себе целочисленное деление, результат уже равен 2
.
Math.ceil(12.0/5) == 3.0
Проблема в том, что в java нет таких специальных операторов как div
или mod
как в Pascal. Потому, знак / работает как целочисленное деление 12/5 действительно равно 2 (и остаток 2). Именно потому, если мы хотим получить дробь, нам нужно кастонуть целочисленный делитель и делимое к float. А сделать это можно как угодно. Хоть 12f/5f
, хоть (float)a/(float)b
. И только после этого уже можно производить округления и пр.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
С <!DOCTYPE html> не работает эта функция ; работает только с xhtml либо без <!DOCTYPE html>Помогите разобраться, пожалуйста
такой плагин подключен http://mediaelementjscom/ в нем запускаются на проигрывание файлы которые еще качаются из сети
Есть код на фидле, необходимо добавить всплывающее окно после завершения акции