Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.02.2012, 02:07
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Смотрите че написал)) велосипедище
___________________________ОКРУГЛИТЬ___________________________
Number.prototype.round = function(a) {
	var b = Math.pow(10, a || 0);
	return Math.round(this * b) / b
}

alert( 11.6546546 .round() )
alert( 11.6546546 .round(2) )
alert( 11.6546546 .round(-1) )
alert( 11.6546546 .round(21) )
alert( typeof  11.6546546 .round() )

а было
alert( 11.6546546 .toFixed() )
alert( 11.6546546 .toFixed(2) )
//alert( 11.6546546 .toFixed(-1) ) eror
//alert( 11.6546546 .toFixed(21) ) eror
alert( typeof 11.6546546 .toFixed() )



___________________________РАНДОМ___________________________
Number.prototype.to = function(a, b) {
	b = Math.pow(10, b || 0)
	return Math.round( (a > this ? (a - this) * Math.random() + this : (this - a || 0) * Math.random() + a || 0) * b) / b
}

alert( 0 .to(10) ) //от нуля до 10
alert( 4 .to(5)  ) // от четырех до пяти
alert( 4 .to(3)  ) // от четырех до трех
alert( 4 .to()  ) // от четырех до нуля
alert( 4.5 .to(3)  ) // от четырех до трех, по умолчанию округление до 0 знаков после запятой
alert( 0 .to(5, 3)  ) //от нуля, до пяти, с тремя знаками после запятой

а было
alert( Math.random() ) // и все

Последний раз редактировалось Livaanderiamarum, 01.02.2012 в 09:03.
Ответить с цитированием
  #2 (permalink)  
Старый 01.02.2012, 02:09
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

По-моему, это просто гениально
__________________
readOnly
Ответить с цитированием
  #3 (permalink)  
Старый 01.02.2012, 02:09
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

очень много телодвижений ...
Ответить с цитированием
  #4 (permalink)  
Старый 01.02.2012, 02:36
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

poorking,
Не каждый так может) а пригодится может каждому)
Ответить с цитированием
  #5 (permalink)  
Старый 01.02.2012, 02:47
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

11.6546546 .round(2)
//==>
11.6546546 .toFixed(2) * 1.0
Ответить с цитированием
  #6 (permalink)  
Старый 01.02.2012, 02:58
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

alert( 11.6546546 .toFixed(21) )


часто приходилось использовать на практике( порядки больше 20)?

alert( 11.6546546 .round(-1) )


-||-

Последний раз редактировалось Shaci, 01.02.2012 в 03:00.
Ответить с цитированием
  #7 (permalink)  
Старый 01.02.2012, 07:26
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от Shaci
часто приходилось использовать на практике( порядки больше 20)?
ни разу и скорее всего не придется, но чтобы тебя это не смущало я поставил ограничение.


Number.prototype.round = function(a) {
	if(a < 0 || a > 19) throw new RangeError("round() digits argument must be between 0 and 20");
	var b = Math.pow(10, a || 0);
	return  Math.round(this * b) / b;
}


alert( 11.6546546 .round() )
alert( 11.6546546 .round(2) )
alert( 11.6546546 .round(-1) )
alert( 11.6546546 .round(21) )
alert( typeof  11.6546546 .round() )


Сообщение от melky
11.6546546 .round(2)
//==>
11.6546546 .toFixed(2) * 1.0
Вообще-то это делается так
alert(typeof 11.6546546 .toFixed(2))
alert(typeof +11.6546546 .toFixed(2))


а еще, допустим у меня число 152 и мне хочется округлить до сотен, я прост делаю 152.round(-2)

Сообщение от melky
очень много телодвижений ...
Где это много то)?

Последний раз редактировалось Livaanderiamarum, 01.02.2012 в 08:45.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Я написал полезный скрипт куда его выложить? Livaanderiamarum Общие вопросы Javascript 1 07.01.2012 17:37
Написал часики для обратного отсчета. Подскажите где слажал t0xas Общие вопросы Javascript 14 26.09.2010 18:22
Написал скрипт,не работает bumero777 Ваши сайты и скрипты 4 08.07.2010 11:34
Написал функцию, а WebKit её не понимает Arkaim Events/DOM/Window 10 12.02.2010 18:03