Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.02.2011, 19:14
Новичок на форуме
Отправить личное сообщение для SleeP Посмотреть профиль Найти все сообщения от SleeP
 
Регистрация: 20.02.2011
Сообщений: 2

Как сделать, чтобы JavaScript выводил в результате целое число???
<script>
  var i =104;
  var k =3;
  var l =(0+1);
  var m =100
  var w =i+k
  var v = (w/l)/m;
  var x =v*200
  document.write(x);
 </script>


В результате выводит 3.5000000000000004. Как сделать, чтобы выводило 3???

Последний раз редактировалось SleeP, 20.02.2011 в 19:26.
Ответить с цитированием
  #2 (permalink)  
Старый 20.02.2011, 19:52
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

alert(~~3.5000000000000004)
Ответить с цитированием
  #3 (permalink)  
Старый 20.02.2011, 20:08
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,496

Зачем 2 операции если можно одной?)
alert(3.5000000000000004|0)

И вообще - нефиг. Новичкам надо советовать правильные методы:
alert([
Math.round(3.5), //округлить
Math.ceil(3.1), //округлить вверх
Math.floor(3.9) //округлить вниз
])
Ответить с цитированием
  #4 (permalink)  
Старый 20.02.2011, 20:29
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Aetae
Зачем 2 операции если можно одной?)
alert(3.5000000000000004|0) //2757ms
alert(~~3.5000000000000004) //1618ms

PS: хотя FB почему-то не всегда однозначно отдает преимущество последнему хз, а так ты по сути прав

Сообщение от Aetae
Новичкам надо советовать правильные методы:
хм. я лично не считаю, что побитовые операторы вредны для новичков, к тому же в конкретном случае безобидны

тогда еще стоит добавить:
alert(parseInt(3.5000000000000004));

Последний раз редактировалось monolithed, 20.02.2011 в 20:50.
Ответить с цитированием
  #5 (permalink)  
Старый 20.02.2011, 21:11
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от monolithed
к тому же в конкретном случае безобидны
Не совсем.
var t = 123745737531.41;
alert( [t, t | 0, ~~t].join('\n') )
Ответить с цитированием
  #6 (permalink)  
Старый 20.02.2011, 21:25
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от B@rmaley.e><e
Не совсем.
ага, после 1000000000 начинается шоу
больше интересно как это обойти, используя только побитовые операторы?
Ответить с цитированием
  #7 (permalink)  
Старый 20.02.2011, 21:49
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

После 2147483648, если быть точным :-)
Ответить с цитированием
  #8 (permalink)  
Старый 21.02.2011, 10:21
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

Цитата:
больше интересно как это обойти, используя только побитовые операторы?
Никак.

Цитата:
точным
Занудой.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать, чтобы русские буквы не вводились в определенные поля формы? yachainik Общие вопросы Javascript 6 13.02.2017 16:43
как сделать выпадающий список, чтобы второй зависил от значения первого???? zsaz jQuery 2 16.07.2010 20:12
Как сделать справочное окно? Vlaimir Events/DOM/Window 13 05.01.2009 14:06
Как сделать такую галерею crisco Events/DOM/Window 4 23.12.2008 16:28
как сделать гиперсылку на объект javascript??? kos_walker Общие вопросы Javascript 3 30.09.2008 06:58