Числа в JAVASCRIPT. Тип данных number. Работа с числами. проблема неточных вычислений.
В JavaScript существуют 2 вида чисел. Это обычные числа в 64-битном формате с которыми мы чаще всего и будем работать.
И BigInt числа, они дают возможность работать с целыми числами произвольной длины. В этом уроке мы рассмотрим обычные числа типа number, и научимся с ними работать.
👉 Файлы урока - fls.guru/files/tutorials/js/j...
Причина проблемы неточных вычислений: habr.com/ru/post/112953/
Функция корректировки вычислений:
developer.mozilla.org/ru/docs...
Объект Math: developer.mozilla.org/ru/docs...
🔴 Получить доступ к плюшкам + поддержать канал: / freelancerlifestyle
🔴 Telegram канал: t.me/freelancer_lifestyle (teleg.run/freelancer_lifestyle)
🔴 Telegram чат по верстке: t.me/flschat (teleg.run/flschat)
🔴 Facebook: / freelancerlifestyle
🔴 Instagram: / freelancer.lifestyle
00:00 - В уроке
00:26 - Запись чисел
01:38 - Системы счисления. toString()
03:03 - Округление чисел
06:02 - Проблема неточных вычислений
09:26 - Проверка: isFinite и isNaN
11:47 - parseInt и parseFloat
13:53 - Некоторые функции Math
15:07 - Домашка
16:03 - Заключение
👋 Меня зовут Женя Андриканич, я IT - специалист, занимаюсь разработкой сайтов. На этом канале, я регулярно и в максимально доступном формате буду делиться с тобой своим опытом, наработками, секретами и лайфхаками!
Ссылка на канал: / freelancerlifestyle
🤟 Живи, а работай в свободное время! ©
Пікірлер: 236
Скоро DOM :) 🔴 Карта сайта: miro.com/app/board/o9J_lZB3YKI=/ 🔴 Получить доступ к плюшкам + поддержать канал: www.patreon.com/freelancerlifestyle 🔴 Telegram канал: t.me/freelancer_lifestyle (teleg.run/freelancer_lifestyle) 🔴 Telegram чат по верстке: t.me/flschat (teleg.run/flschat) 🔴 Facebook: facebook.com/freelancerlifestyle 🔴 Instagram: instagram.com/freelancer.lifestyle
@developer8112
3 жыл бұрын
Ура!!!
@olegsemenukha4107
3 жыл бұрын
Предвкушаю!!! 😃
@muhammetturnikmen3010
3 жыл бұрын
Я недавно начал учиться программированию. И у меня вопрос допустим я взял заказ и выпонил его. Мне как надо будет отдать этот заказ клиенту. Просто готовая работа или добавить на хостинг (или это уже его проблема)
@developer8112
3 жыл бұрын
@@muhammetturnikmen3010 если в ТЗ нет просто сдать работу.
@muhammetturnikmen3010
3 жыл бұрын
@@developer8112 а что значит ТЗ?
Женя, спасибо что ты есть.
@FreelancerLifeStyle
3 жыл бұрын
Пожалуйста!
Thank for your video! // №_1 // Нужно добавить специальное число "EPSILON"(статическая переменная в объекте "Math") к нужному числу; let numOne = Math.round((1.005 + Number.EPSILON) * 100) / 100; console.log(numOne); // №_2 // Нужно вызвать функцию "parseFloat" - она преобразует строку в число до появлении ошибки; console.log(parseFloat(value)); // №_3 // Вызываем функцию "isNaN" - которая проверит аргумент на нечисловое выражение; let value = 58 + "Фрилансер"; if (isNaN(value)) { console.log('Результат выражения NaN'); } // №_4 // Вызываем функцию(метод) "max" - которая определяет большее число из переданных в неё. console.log( Math.max( 10, 58, 39, -150, 0 ) ); // №_5 // Вызываем функцию(метод) "floor" - которая округляет число в меньшую сторону. console.log(Math.floor(58.858));
Рад новым урокам по js больше чем выходным ☺
Смотрела Богдана Стащука ранее, но его видео давались тяжело. В обучении на данном канале выделила для себя два существенных плюса: видео представлены короткими кусками, что воспринять намного легче, чем видео, склеенное в 11 часов. Да, полное, да, познавательное, но психологически тяжело. Второй плюс в том, что часть "повествования" дублируется текстом на экране. Я лучше воспринимаю визуальную информацию, поэтому одновременно слушать и читать то же самое - очень спасает моё восприятие и ускоряет процесс обучения. Спасибо, Женя!
Никогда раньше не учила программирование с таким удовольствием, как сейчас. Спасибо вам!
Продолжаем заниматься изучением JS! Понятное и подробное описание возможностей языка. Рекомендую и жду новых выпусков.
@FreelancerLifeStyle
3 жыл бұрын
Спасибо! Уроки готовятся!
Спасибо тебе, за всю эту бесценную информацию, что ты нам разжевываешь и даешь)
@FreelancerLifeStyle
3 жыл бұрын
Пожалуйста!
Первый просмотр - вроде понятно Домашка - О, это помню, это тоже, а это еще что такое? Второй просмотр - Ааа, уже и забыл об этом. И об этом.. Теперь все понятно) Напутствие. Огромное спасибо! У вас очень хорошая подача материала и грамотно составлена домашка, чтобы уж точно все понять и запомнить!)
Спасибо! Твои уроки по JS очень крутые! 😉
@FreelancerLifeStyle
3 жыл бұрын
Я рад!
спасибо! всегда возвращаюсь к Вашим урока, когда надо повторить!
Спасибо большое вам за ещё один урок по js😊👍
@FreelancerLifeStyle
3 жыл бұрын
Пожалуйста!
Жека, отличный гайд по числам! Спасибо за домашку!
@FreelancerLifeStyle
3 жыл бұрын
Пожалуйста!
Лучший преподаватель! Большое спасибо тебе! 😊
@FreelancerLifeStyle
2 жыл бұрын
Пожалуйста!
Спасибо большое! Как раз сейчас учусь на курсах, очень помогают Ваши видео👍
@FreelancerLifeStyle
3 жыл бұрын
Я рад!
Спасибо! Вы супер! Поздравляю Вас с новым 2022 годом! Желаю крепкого здоровья и счастья!!!
Поскорее бы уже закончить этот курс, а то жду уроки каждый день 😜
@FreelancerLifeStyle
3 жыл бұрын
Постараюсь
@qetosf
3 жыл бұрын
Можно не ждать а параллельно закреплять еще в других источниках
@user-kh3ob7sw9v
3 жыл бұрын
@@qetosf спасибо, но я уже так делаю😏
Замечательные уроки!!! Спасибо!!!
Огромное спасибо за уроки по JS 👍
@FreelancerLifeStyle
3 жыл бұрын
Пожалуйста!
Жека, ты гений! от тебя передается такой мощный запал бодрости, мотивации и жизнерадостности!!! Я впервые вижу такого крутого человека, как ты!
Спасибо, урок как всегда отличный и тема проще чем массивы.
@FreelancerLifeStyle
3 жыл бұрын
массивы на подходе)
все ваши виде это лучшее что можно найти на русскоязычном сегменте! Я поддерживаю вас во всём! желаю мира и спокойствия вашей стране и семье
1 - let sourceNum = 1.005 + Number.EPSILON; let numOne = Math.round(sourceNum * 100) / 100; console.log(numOne); 2 - let value = parseFloat("135.58"); console.log(value); 3 - let value = 58 + "Фрилансер"; if (isNaN(value)) { console.log('Результат выражения NaN'); } 4 - console.log(Math.max(10, 58, 39, -150, 0)); 5 - console.log(Math.floor(58.858));
@kirillperov3843
2 жыл бұрын
Подскажите, пожалуйста, почему команда "console.log((12.35).toFixed(1));" выводит в консоль 12.3, а не 12.4? Разве тройка не должна округляться до четырёх, ведь после тройки стоит пятёрка? Например, команда "console.log(Math.round(5.4));" выведет в консоль 5, а вот команда "console.log(Math.round(5.5));" выведет уже 6.
@43445fgfgd
2 жыл бұрын
@@kirillperov3843 "console.log((12.35).toFixed(1));" данна команда виводить лише задану кількість знаків після крапки (в дужках ми указали необхідну к-сть знаків (1).
@kirillperov3843
2 жыл бұрын
@@43445fgfgd "лише задану кількість" - это помилка. На самом деле toFixed не только сокращает длину числа, но и округляет оставшееся число аналогично команде Math.round. Наприклад, команда "console.log((5.45).toFixed(1));" выводит в консоль число 5.5, а не 5.4, почему? Бо помимо отбрасывания последней пятёрки, четверка округляется до пяти, так как после четверки стояла пятерка, а согласно методу Math.round число округляется в большую сторону, если его дробь является 5 или больше (5.0, 5.1, 5.2, 5.3, 5.4 -> 5 //\\ 5.5, 5.6, 5.7, 5.8, 5.9 -> 6).
@SeniorHuguenot
2 жыл бұрын
@@kirillperov3843 console.log((12.35).toFixed(1)); данная команда округляет так же до ближайшего числа. Берём 12.35 и видим, что дробная часть ближе к 12 чем к 13. поэтому она и не округлиться до четырёх, тоже самое будет и с 12.45, но начиная с 12.55 дробная часть уже ближе к 13, поэтому произойдёт округление до 12.6 .
@kirillperov3843
2 жыл бұрын
@@SeniorHuguenot в скобках стоит единица, значит после точки остается одно значение, вот оно-то и округляется, а 12 в любом случае останется самим собой.
Спасибо за видео. Только сейчас получилось посмотреть!
@FreelancerLifeStyle
3 жыл бұрын
Пожалуйста!
Спасибо! Как всегда, полезно!
@FreelancerLifeStyle
3 жыл бұрын
Пожалуйста!
Отличный урок) Отдельное спасибо за Number.Epsilon и Math.abs) Их при прохождении темы на LearnJS там я что-то не видел)
Спасибо за видео! Спасибо за ссылки! Спасибо за труд!
Здравствуйте, Евгений и коллеги по цеху) Большое спасибо за урок! Публикую своё решение домашней работы: Задача №1. Получить верное значение округления. let numOne = Math.round(1.005 * 100) / 100; Выведет 1, что не верно. console.log(numOne); Решение, для компенсации неточности вычисления добавить число EPSILON let sourceNum = 1.005 + Number.EPSILON; let numOne = Math.round(sourceNum * 100) / 100; console.log(numOne); Задача №2. Получить число 135.58 из строки. let value = "135.58px"; Решение: let value = parseFloat("135.58px"); console.log(value); Задача №3. Построить верное условное ветвление. let value = 58 + "Фрилансер"; if (isNaN(58 + "Фрилансер") == true) { console.log("Результат выражения NaN"); } Важно: NaN никогда не = NaN Задача №4. Найти максимальное число из 10, 58, 39, -150,0 Решение: console.log(Math.max(10, 58, 39, -150,0)); Задача №5. Округлить число 58.858 до числа 58 /* let num = Math.floor(58.858); console.log(num); // или более короткая запись, без объявления переменной console.log(Math.floor(58.858))
@gdkor
Жыл бұрын
Зачем так расписывать, целую книгу написал. Лучше номер задания и ответ, и всё
Спасибо огромное! Все просто и понятно! 👍👍👍👍👍👍👍👍👍👍
Спасибо, Женя! :)
Спасибо Жек, как всегда интересно
Спасибо за видео! Смотрю~
@FreelancerLifeStyle
3 жыл бұрын
Спасибо!
Спасибо за урок!
Спасибо большое за полезные видео о доступное объяснение материала! Очень бы хотелось увидеть видео по React
@haminidzinanusubalieva6622
2 жыл бұрын
есть на ютубе курс "путь самурая")
Жека, Спасибо за шикарный контент! Решение№1: let sourseNum = 1.005 + Number.EPSILON; let numOne = Math.round(sourseNum * 100) / 100; console.log(numOne); Решение№2: let value = parseFloat("135.58px"); console.log (value); Решение№3: let value = 58 + "Фрилансер"; if (isNaN(value)) { console.log('Результат выражения NaN'); } Решение№4: console.log(Math.max(10,58,39,-150,0)); Решение№5: 1 вариант: let num = Math.floor (58.858); console.log(num); 2 вариант: console.log(Math.floor(58.858));
Это самый подробный и понятный видео урок о числах, которые я видел. Спасибо! Жду твои видео по Angular)))))
@FreelancerLifeStyle
3 жыл бұрын
Ух, спасибо!
Шикарно, как всегда)
@FreelancerLifeStyle
3 жыл бұрын
Спасибо!
Очень крутое и полезное видео, спасибо, Василий!
@FreelancerLifeStyle
3 жыл бұрын
Евгений, но спасибо)
@cotriks6251
3 жыл бұрын
@@FreelancerLifeStyle Извините)
Спасибо огромное!!!
Спасибо большое!
Домашка виконана, навіть різними способами😉
Спасибо большое!)
Дякую за урок!!! Домашка: 1) let numOne = Math.round( (1.005 + Number.EPSILON) * 100) / 100; console.log(numOne); 2) let value = "135.58px"; console.log(parceFloat(value)); 3) let number = 58 + "Фрилансер"; if ( isNaN(number) ) { console.log('Результат выражение NaN'); } 4) console.log(Math.max(10, 58, 39, -150, 0); 5) console.log(Math.Floor(58.858));
Скоро DOM? Awesome, MAN!!!
Спасибо за урок, он неплох)! Еще, мне понравилось как ты в конце сказал слово "Успехов!". Это было эффектно, твердо, я поверил.
Спасибо! 👍✨
Спасибо тебе огромное
Дчкую за корисне відео👍
Спасибо от души!
Крутень, Жека дякую !
Очень крутые видео, огромное спасибо! Будет изучение Node.JS?
красавчик! Спасибо тебе ))
Большое спасибо! Будет ли в этом курсе node. js? И ещё такой вопрос, стоит ли учить php или выполнять эту работу с помощью node. js?
@MegaTesei
3 жыл бұрын
В 2015 году, препод по JS на GB сказал, что NodeJS превосходит по всем параметрам ПХП, поэтому, вероятно, что не стоит.
@TheVakin213
2 жыл бұрын
Стоит. Иногда используется, к примеру, апач и нода в купаже. Так как каждый из них хорош в определенных задачах.
@haminidzinanusubalieva6622
2 жыл бұрын
@@MegaTesei естественно, препод по ЖС будет лапшу про Нод Жс вешать, чтоб его курсы продавались
Дякую за відео Женя
Thanks so much , i really appreciate your work ! I'll become a hero of IT Technology -_- !
От души!
Спасибо!
Жека - лучший 💪😎
@FreelancerLifeStyle
3 жыл бұрын
Спасибо!
Было бы не плохо если ещё рассказали про Intl.NumberFormat функция, которая форматирует число в денежный формат. Например мы передаём 10000 а нам возвращается 10 000. Достаточно крутая функция как по мне:)
Домашка: Задача №1. let numOne = Math.round((1.005 + Number.EPSILON) * 100) / 100; console.log(numOne) Используем инструмент Number.EPSILON, чтобы округление было верным Задача №2. let value = '135.58px' console.log(parseFloat(value)) Задача №3. let value = 58 + 'Фрилансер' if (value !== NaN) { console.log('Результат выражения NaN') } Используем аксиому, что NaN === NaN возвращает false Задача №4. console.log(Math.max(10, 58, 39, -150, 0)) Задача №5. let num = 58.858 console.log(Math.floor(num))
@hypnotie
2 жыл бұрын
в задаче "3" не совсем верно по-моему, потому что условие будет "true" вне зависимост от выражения. например 58 + 58 так же будет выводить строку "Результат выражения NaN", хотя это не так
Опа, сегодня обработаем)
@FreelancerLifeStyle
3 жыл бұрын
Я рад!
Евгений, спасибо за курсы, да и за видео вцелом. Очень понятно, чётко. Если бы я уже не прошла пол пути на курсах front end, обязательно пошла бы к вам. Но и с моими курсами вы помогаете, потому что очень понятно и наглядно показываете как исправить свои косяки. Удачи вам, не останавливайтесь, ждём курс по PHP. Это возможно?
@FreelancerLifeStyle
3 жыл бұрын
Пожалуйста! По поводу дальнейших курсов будет видно
@kirillperov3843
2 жыл бұрын
Алена, подскажите, пожалуйста, почему команда "console.log((12.35).toFixed(1));" выводит в консоль 12.3, а не 12.4? Разве тройка не должна округляться до четырёх, ведь после тройки стоит пятёрка? Например, команда "console.log(Math.round(5.4));" выведет в консоль 5, а вот команда "console.log(Math.round(5.5));" выведет уже 6.
@olenaolena6075
2 жыл бұрын
@@kirillperov3843 спросите у JS разработчиков, пожалуйста.
@olenaolena6075
2 жыл бұрын
@@kirillperov3843 а я тем более 😂 JS вообще не самый однозначный.
@kirillperov3843
2 жыл бұрын
@@olenaolena6075 да уж, столько вопросов у меня возникает на пути изучения JS, что бумага заканчивается, теперь буду в блокнот на компьютере записывать)
Класс!
Лайк!
Математика в js ще та. Цінність цих уроків, в тому, що в відео зібрані отакі зовсім неочевидні нюанси і це дуже економить час.
Евгений скажите при разработке сайтов вы используите плагины для анимации или пишите сами буду очень благодарен если ответите
Женя, привет. Будут ли шпаргалки по JS, как и по вёрстке?
Спасибо
@FreelancerLifeStyle
3 жыл бұрын
Пожалуйста!
@movieclips4848
3 жыл бұрын
@@FreelancerLifeStyle Спасибо что всегда держите обратную связь
Привет 👍
11.08.2022 йду за власним графіком, незнаючи повноцінно js вже віконав перше замовлення по внесеню правок на сайті) отримав перші 15 доларів на фрілансі, і це круто. Надзвичайно велике дякую автору що дає безкоштовну можливість навчатись і працювати, Окремо хочу подякувати за мотивацію)
@user-mn9zd8kw4k
Жыл бұрын
как успехи?
@freelanceismylife1496
Жыл бұрын
@@user-mn9zd8kw4k все добре, працюю на фрілансі, курс пройшов повністю, зараз вивчаю с#, для мене верстка виявилась скучною , проте наданій момент виконую замовлення як верстальщик
@user-mn9zd8kw4k
Жыл бұрын
@@freelanceismylife1496 красава
@AlonaZdakaeva
Жыл бұрын
@@freelanceismylife1496 підкажіть будь ласка на яких ресурсах шукаєте роботу з фрілансу? теж новичок, цікаво де потім шукати роботу. дякую
@freelanceismylife1496
Жыл бұрын
@@AlonaZdakaeva веблансер напевно найкраща для новачка, ну і Upwork 80% роботи приходить саме з Upwork
Спасибо за урок, подскажи аналог пунто свитчер (программа для автоматической смены раскладки напечатанного) для VSCode. Спасибо заранее.
Спасибо. Можете записать уроки по Twig?
оце пів року відпочив, знову взявся, Лупаєм цю скалу !
Скажи пожалуйста, какой фотошоп для вёрстки ты рекомендуешь?
Для понимания обьема курса по джс, сколько планируется, примерно, уроков?)
Ура JS!!!!!
Женя, огромное спасибо за уроки! Домашка: 1) let sourceNum = 1.005 + Number.EPSILON; let numOne = Math.round(sourceNum * 100) / 100; console.log(numOne); 2) let value = parseFloat("135.58px"); console.log(value); 3) let value = 58 + "Фрилансер"; if (isNaN(value)) { console.log('Результат выражения NaN'); } 4) console.log(Math.max(10, 58, 39, -150, 0)); 5) let numOne = Math.floor(58.858); console.log(numOne);
Respect
@FreelancerLifeStyle
3 жыл бұрын
Спасибо!
Привет.Курс по html и css окончен?Дальше пошел js?))Спасибо тебе за твои труды!!!😎👍
@MegaTesei
3 жыл бұрын
Нет урока по семантике и многому чему ещё, поэтому конца ещё нет.
1e-6 не удачный пример, например, не плохо было бы ещё добавить пример 1.23e-6 (или, что-то наподобие), с этого примера, хочеться написать например 123e-6. В остальном Ваш курс по JS лучший, большое спасибо за Ваш труд...
👍🏼
@FreelancerLifeStyle
3 жыл бұрын
Спасибо!
Жека!!!КАК насчет рубрики решение задач на codewars с твоими пояснениями???🤔✊
Жека,шалом!Запиши пж видео про твой первый заказ, через сколько он был сделан ,после начала обучения, уверен залетит таким как я)
Выложите, пожалуйста, конспект лекции на Patrion. Спасибо!
Красава )))
Доброго времени суток Жень, /*Саня-88*/ начинающий, хочу перейти полностью на программирование, когда нахожу свободное время от работы, смотрю твои познавательные, интересные видосы. Работа моя заключается в ремонте сот.телефонов, компьютеров, ЖК ТВ. немного работал программистом первой категории ( сисадмин в компании QazCloud ) Спасибо большое за то что делишься бесценным опытом, помогая людям и за одно постепенно усваиваешь новое это cool. Хочу сделать свой сайт а не могу понять на каком языке лучше писать базу данных, может кинешь ссылку или на скилле знаешь. Какой язык бэкэнда лучше или все они для разных задач зависит от сайта или что-то мог упустить. Благодарю заранее.
И если можно ещё один вопрос. Как научиться верстать сложные макеты если бы вы дали ссылки что почитать или видео я бы вам был бы очень признателен 🙏🙏🙏
Начиная с этого видоса, я смотрю на свой истфаковский диплом, как на NaN. И думаю такой: "Ну да, пошел я на ДоРеМиДоРеДо со своим гуманитарным образованием...")))))
Ждем DOM!
Привет Евгений, хочу создать многостраничный сайт, сделай отдельный плей лист на тему. Пошагово. Кому ещё это будет интересно? Приседеняйтесь.
@MegaTesei
3 жыл бұрын
Уже же есть такое.
Будут ли уроки Js именно на примере верстки?
@MegaTesei
3 жыл бұрын
В вёрстке уже есть примеры использования JS. Однако там применена библиотека JQuerry
А можно ли сравнить числа с помощью expect(chai)?
Жека, ты сам делаешь превью?
5:55 не совсем понял, почему при использовании toFixed число становится строкой, я после округления вбил console.log(typeof num); мне показало number.
1. let numOne = Math.round((1.005 + Number.EPSILON) * 100) / 100; console.log(numOne) 2. let numTwo = parseFloat('135.58px'); console.log(numTwo); console.log(typeof numTwo); вот только number у меня сам получился, но если что, я помню, что надо добавить + 3.if (value !== NaN){ console.log('результат выражения NaN'); } console.log(+value); проверка console.log(typeof value); 4. let numTree = Math.max(0,58,39,-150,0); console.log(numTree); 5. let numFour = Math.floor(58.858); console.log(numFour); с числами для меня долго нужно разбираться...
14к просмотров до конца дойдут сильнейшие
Хелп ми, музыка в конце просто топ, что за трек?
@FreelancerLifeStyle
3 жыл бұрын
Писалась для канала есть на патреоне
Здравствуйте, можете, пожалуйста, скинуть свое обнуление в scss?! Очень хочется такое же обнуление в препроцессоре. Спасибо!
1) let sourceNum = 1.005 + Number.EPSILON; let numOne = Math.round(sourceNum * 100) / 100; console.log(numOne); 2) let value = parseFloat("138.58px"); console.log(value); 3) let value2 = 58 + "Фрилансер"; if (value2 != NaN) { console.log("Результат выражения NaN"); } 4) console.log(Math.max(10, 58, 39, -150, 0)); 5) let okruglit = Math.floor(58.858); console.log(okruglit); Все задания
Я в первой задачке сразу поставил + вместо умножения и сразу все получилось (1.01)