|
|
Да, просто замени весь шаблон на этот:
|

25.11.2013, 11:55
|
|
Новичок на форуме
|
|
Регистрация: 19.11.2013
Сообщений: 7
|
|
|
Проблема с задачей (нан не нан)
Добрый день уважаемые форумчане, растолкуйте мне почему Нан не Нан и условие не выполняется!
|
|

25.11.2013, 12:17
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,154
|
|
maksimov.ua,
|
Цитата:
|
|
Чтобы проверить переменную на NaN, используйте специальную функцию isNaN
|
prompt возвращает строки а не числа
|
|

25.11.2013, 12:38
|
|
Новичок на форуме
|
|
Регистрация: 19.11.2013
Сообщений: 7
|
|
|
isNaN --сработало..
возвраты prompt'а преобразовал вот так :
var result = + product1 + + product2;
проверился Иснаном:
if ( isNaN(result)){
alert("Введены не числа");
и посчитался при false :
else {
result = result.toFixed(10);
result = Math.abs(result);
alert(result + " грн");
Но вопрос закрыт не полностью: Почему отладчик хрома в вотче показал result без кавычек, если это строка?
|
|

25.11.2013, 12:49
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,154
|
|
|
Сообщение от maksimov.ua
|
|
Почему отладчик хрома в вотче показал result без кавычек, если это строка?
|
где пример в котором result строка????
|
|

25.11.2013, 12:52
|
|
Новичок на форуме
|
|
Регистрация: 19.11.2013
Сообщений: 7
|
|
|
стоп!!! Понимаю, что буду закидан камнями, но НаН строка?
|
|

25.11.2013, 12:54
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,154
|
|
maksimov.ua,
alert(typeof NaN)
|
|

25.11.2013, 12:56
|
 |
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,304
|
|
|
Сообщение от maksimov.ua
|
|
но НаН строка?
|
Из букваря
|
Цитата:
|
Значение NaN не равно никакому другому числу, включая само NaN.
Чтобы проверить переменную на NaN, используйте специальную функцию isNaN.
|
http://javascript.ru/NaN
Вывод - не строка.
|
|

25.11.2013, 13:04
|
|
Новичок на форуме
|
|
Регистрация: 19.11.2013
Сообщений: 7
|
|
|
Собственно код:
var product1 = prompt("Введите цену первого товара: ","");
var product2 = prompt("Введите цену второго товара","");
var result = + product1 + + product2;
alert(typeof NaN);
alert(typeof result);
if (result == NaN){
//if ( isNaN(result)){
alert("Введены не числа");
} else {
result = result.toFixed(10);
result = Math.abs(result);
alert(result + " грн");
}
Дальше после проверки переходим сразу на else, так как проверка возвращает false. Но отладчик показывает, что сравниваю число с НаН, который в свою очередь является тоже число.
watch из crome
product1: "1"
product2: "q"
result: NaN
result == NaN: false
typeof NaN: "number"
typeof result: "number"
|
|

25.11.2013, 13:05
|
|
Новичок на форуме
|
|
Регистрация: 19.11.2013
Сообщений: 7
|
|
Спасибо. Пошел в "букварь!"
|
|
|
|