Тема: UpJump: Q&A :)
Показать сообщение отдельно
  #55 (permalink)  
Старый 25.01.2011, 20:16
Аватар для UpJump
Профессор
Отправить личное сообщение для UpJump Посмотреть профиль Найти все сообщения от UpJump
 
Регистрация: 02.11.2010
Сообщений: 174

Собственно сообразил решение поставленной(самому себе ) сферической задачи.
sum = 0.1 + 0.2;
x = prompt("0.1 + 0.2 == ?")
if(sum == x)alert("true");else alert("false");

Естественно будет не 0.3 т.к. погрешность
alert(0.1 + 0.2);

Зато это можно обойти так.
sum = 0.1 + 0.2;
x = prompt("0.1 + 0.2 == ?")
if(sum-0.01<x&&x<sum+0.01)alert("true");else alert("false");

Как бы создав поле допустимой погрешности.
UPD
Естественно если мы введем ответ 2.999999999999 то результат тоже будет true. но для ответа до одной цифры после точки решение годится.

Последний раз редактировалось UpJump, 25.01.2011 в 20:21.
Ответить с цитированием