![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Pierre |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 3.10.2015 Репутация: нет Всего: нет |
Всем привет. Столкнулся тут с такой проблемой. Не совсем могу понять, почему в данном примере выражения не идентичны?
<script type="text/javascript" > var a = 0.3, b = 0.2, c = 0.1; if ((a + b) + c === a + (b + c)) {alert('Equals')} else {alert('Not equals')}; </script> Вроде оператор === сравнивает не только значение, но и тип данных. Хотя используя typeof к каждой переменной получаем везде number Но при использовании === (при сравнении выражений) мы вроде имеем булевые значения, тип boolean, поскольку идет построение if, else(в добавок). Кто может подсказать в чем истина?) Добавлено через 7 минут и 10 секунд Просто я считаю, при выполнении сравнения в первом выражении типы данных у a и b - number, а у c - boolean, а во втором a - boolean, а у b,c - number и поэтому сами выражения не идентичны. Это мнение ошибочно? |
|||
|
||||
| Pierre |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 3.10.2015 Репутация: нет Всего: нет |
разобрался сам, мое мнение ошибочно. Не в типе данных дело) Все намного проще)
|
|||
|
||||
| R71MT |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 28.7.2015 Репутация: нет Всего: 1 |
..мы рады за тебя! Хоть-бы поделился секретом.... А то зачем тему создавал?
|
|||
|
||||
| ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
R71MT, Вещественные нельзя сравнивать таким простым образом. В этом и дело. Откуда там могло взяться логическое - нипанятна
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||
|
|||||
| vadya1976 |
|
|||
|
Unregistered |
||||
|
||||
| vadya1976 |
|
|||
|
Unregistered |
||||
|
||||
| Pierre |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 3.10.2015 Репутация: нет Всего: нет |
Я ж и написал, что мнение ошибочно. Это просто слишком мозг не в ту степь пошел. А так просто посчитал в js консоле оба выражения подставив значения и все. смутил просто изначально ===, но заменив его и на == разницы не было. |
||||||
|
|||||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |