2013-08-13 2 views
1

Может ли кто-нибудь объяснить мне, что означает этот код? В if/else. Я читал документацию несколько раз, но не могу понять, что означают эти функции. Благодарю.Что означает пол ceill в этом коде?

private long getBalanceWithFactor(long balance, double factor) { 
     double faccountbalance = (double)balance * factor; 
     long res = 0; 
     if ((Math.ceil(faccountbalance) - faccountbalance) <= 0.5) 
      res = (long)Math.ceil(faccountbalance); 
     else 
      res = (long)Math.floor(faccountbalance); 
     return res; 
    } 
+2

docs, docs, docs, docs ... – Maroun

+0

Пожалуйста, прочтите java API docs –

+2

То же, что и 'Math.round (balance * factor)' или я что-то упускаю? –

ответ

3

Math.ceil() раундов вверх, Math.floor() округляется до ближайшего целого числа.

Так, например, если вы даете ему 0.5

ceil(0.5) вернется 1.0 и floor(0.5) вернется 0.0.

В этом контексте есть еще одна полезная функция: Math.round(), которая является ceil() и floor() в сочетании. Он округляется до ближайшего целого числа, используя правила математического округления.

Обратите внимание: что эти методы возвратят удвоение, поэтому вам нужно будет их отличить, чтобы получить целые числа.

+0

Спасибо за то, что я отредактировал свой ответ. –

+0

@ whoew downvoted: помогите объяснить? –

1

Math.ceil() - Возвращает наименьшее (ближайшее к отрицательной бесконечности) двойное значение, которое не меньше аргумента и равно математическому целому числу.

Math.floor() - Возвращает наибольшее (ближайшая к положительной бесконечности) двойное значение, которое не больше аргумента и равно математическому целому числу.

Взято из link, проверьте это для информации о классе Math и методах, которые определены в нем.

Например,

Math.ceil(5.8) дает 6 и

Math.floor(4.3) дадут 4

+0

Почему этот пост был заблокирован? – midhunhk

1

CEIL является верхней нормализацией т.е. потолка 7,6, 7,1 8 пола противоположен и средства является верхним нормализация, т. е. сумма 7,6, 7,1 составляет 7

Это целое число возвращаемое числовым методом не плавает умножение остатка и коэффициент

1

Он вычисляет коэффициент баланса * как faccountbalance и округляет его до ближайшего целого числа.

Если значение < = 5 раундов до прошлого (пол).

Если значение> 5 раундов до следующего длинного (ceil).

Смежные вопросы