суббота, 21 декабря 2013 г.

Функция round для Javascript


Функция округления числовых значений, идентичная одноименной в PHP.

Функция:
function round (value, precision, mode) {
  var m, f, isHalf, sgn;
  precision |= 0;
  m = Math.pow(10, precision);
  value *= m;
  sgn = (value > 0) | -(value < 0);
  isHalf = value % 1 === 0.5 * sgn;
  f = Math.floor(value);
  if (isHalf) {
    switch (mode) {
    case 'PHP_ROUND_HALF_DOWN':
      value = f + (sgn < 0);
      break;
    case 'PHP_ROUND_HALF_EVEN':
      value = f + (f % 2 * sgn);
      break;
    case 'PHP_ROUND_HALF_ODD':
      value = f + !(f % 2);
      break;
    default:
      value = f + (sgn > 0);
    }
  }
  return (isHalf ? value : Math.round(value)) / m;
}

Применение:
var rounded_value = round (value, precision, mode);
value - число, которое необходимо округлить
precision - точность округления, кол-во знаков после запятой (1 - до десятый, 2 - до сотых и т.д.)
mode - режим округления (режимы идентичны php: PHP_ROUND_HALF_UP (по-умолчанию), PHP_ROUND_HALF_DOWN, PHP_ROUND_HALF_EVEN или PHP_ROUND_HALF_ODD)
rounded_value - переменная с округленным числом

Комментариев нет:

Отправить комментарий