Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.03.2010, 16:33
Аспирант
Отправить личное сообщение для peter888 Посмотреть профиль Найти все сообщения от peter888
 
Регистрация: 24.07.2009
Сообщений: 60

Вытянуть только целую часть
Есть число:
2.11 или 2.50 или 2.99
Как мне отсюда вытянуть "2", независимо от цифр, что идут после точки ?
Ответить с цитированием
  #2 (permalink)  
Старый 02.03.2010, 16:35
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Math.floor
Ответить с цитированием
  #3 (permalink)  
Старый 02.03.2010, 16:38
Аспирант
Отправить личное сообщение для peter888 Посмотреть профиль Найти все сообщения от peter888
 
Регистрация: 24.07.2009
Сообщений: 60

Спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 02.03.2010, 16:39
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

alert([~~2.99, ~~2.50, ~~2.11])
Ответить с цитированием
  #5 (permalink)  
Старый 02.03.2010, 19:17
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

B@rmaley.e><e,
Забавно)
Ответить с цитированием
  #6 (permalink)  
Старый 03.03.2010, 10:58
Кандидат Javascript-наук
Отправить личное сообщение для vk65535 Посмотреть профиль Найти все сообщения от vk65535
 
Регистрация: 21.11.2008
Сообщений: 114

B@rmaley.e><e,
ухты, идея супер )
Ответить с цитированием
  #7 (permalink)  
Старый 03.03.2010, 11:08
Аспирант
Отправить личное сообщение для peter888 Посмотреть профиль Найти все сообщения от peter888
 
Регистрация: 24.07.2009
Сообщений: 60

ага, спасиб
Ответить с цитированием
  #8 (permalink)  
Старый 03.03.2010, 12:01
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

(function(){
    var i,
        num = 2.50,
        now = new Date().getTime();

    for ( i = 1000000; i--; ) Math.floor(num);
    alert('Math.floor: ' + (new Date().getTime() - now) + 'ms');

    now = new Date().getTime();
    for ( i = 1000000; i--; ) ~~num;
    alert('~~: ' + (new Date().getTime() - now) + 'ms');
}());

В ИЕ и в Опере ~~ лидирует с огромным отрывом, в ФФ разница почти незамента (~5%). Интересно

UPD В Сафари тоже перевес на стороне ~~, а вот Chrome говорит, что Math.floor на 5-10% быстрее

Последний раз редактировалось e1f, 03.03.2010 в 12:04. Причина: upd
Ответить с цитированием
  #9 (permalink)  
Старый 03.03.2010, 13:19
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от e1f
Chrome говорит, что Math.floor на 5-10% быстрее
Но обе операции медленнее, чем ~~ в опере.

И еще: ~~ не эквивалентен Math.floor'у.
alert( [~~-5.5, Math.floor(-5.5)] )


UPD: n|0
(function(){
    var i,
        num = 2.50,
        now = +new Date, a = [];

    for (i = 1000000; i--; ) Math.floor(num);
    a.push('Math.floor: ' + (new Date().getTime() - now) + 'ms');

    for (i = 1000000, now = +new Date; i--; ) ~~num;
    a.push('~~: ' + (new Date().getTime() - now) + 'ms');

    for ( i = 1000000, now = +new Date(); i--; ) num|0;
    a.push('0|: ' + (new Date().getTime() - now) + 'ms');

    for ( i = 1000000, now = +new Date(); i--; ) num<<0;
    a.push('<<0: ' + (new Date().getTime() - now) + 'ms');

    for ( i = 1000000, now = +new Date(); i--; ) num>>0;
    a.push('>>0: ' + (new Date().getTime() - now) + 'ms');

    alert(a.join('\n'));
}());
Новый вариант уделывает Math.floor в хромом.
В опере и ие8 он лучше ~~.
В FF не лучше ~~ (порой отстает на несколько мс).

Последний раз редактировалось B@rmaley.e><e, 03.03.2010 в 13:36.
Ответить с цитированием
  #10 (permalink)  
Старый 03.03.2010, 13:29
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

О, последний вариант мне нравится
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделить группу чекбоксов. В группе может быть только один чекбокс. JooZ Элементы интерфейса 2 23.12.2009 19:28
Вырезать часть HTML-структуры slivka_83 Общие вопросы Javascript 3 27.10.2009 11:26
Как сделать чтобы text() брал только текст родителя без текста вложенных контейнеров? Andrey32 jQuery 3 23.05.2009 01:33
JS'ом поменять textDecoration только для случаев link и visited lancer Элементы интерфейса 3 05.04.2008 20:51