Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2015, 11:35   #1
Bender1000
Пользователь
 
Регистрация: 20.05.2013
Сообщений: 37
Вопрос Как, если переменная является NaN, сделать её 0? - для калькулятора

Есть калькулятор. Здесь не привожу, т.к. при заполнении всех полей он работает. Не работает, если некоторые поля пусты, то есть для калькулятора они являются NaN'ами, и вопрос такой: как проверить, является ли значение, введённое пользователем, числом или нет?

Есть такая банальная проверка, не работает, что посоветуете?
Код:
function make_calc(){
		var fSleep       = parseInt(document.forms.calculator.elements.fSleep.value      );
		var fFood        = parseInt(document.forms.calculator.elements.fFood.value       );
function nan(){
			if (isNaN(fSleep)){
				var fSleep = 1;
				return fSleep;
			} else {
				var fSleep = 0;
				return fSleep;
			}
		};
		nan();
		console.log(nan());
};
Консоль всегда выводит 1, то есть она считает, что я всегда ввожу какую-то муру, но не число, а я ввожу число )
10000 часов програмирования - https://vk.com/tth.ikarev

Последний раз редактировалось Bender1000; 16.02.2015 в 11:45.
Bender1000 вне форума Ответить с цитированием
Старый 16.02.2015, 12:02   #2
crazy horse
ios developer
Старожил
 
Аватар для crazy horse
 
Регистрация: 16.11.2007
Сообщений: 2,885
По умолчанию

Код:
console.log(document.forms.calculator.elements.fFood.value)
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!
crazy horse вне форума Ответить с цитированием
Старый 16.02.2015, 13:46   #3
Bender1000
Пользователь
 
Регистрация: 20.05.2013
Сообщений: 37
По умолчанию

Консоль выдает ровно то, что я ввожу в поле. Если ничего не ввожу - само собой - undefined
10000 часов програмирования - https://vk.com/tth.ikarev
Bender1000 вне форума Ответить с цитированием
Старый 16.02.2015, 14:28   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
как проверить, является ли значение, введённое пользователем, числом или нет?
Вообще мне твоя проверка не нравится. Как-то не по феншую смотрится.
Вот какими проверками пользуюсь я:
Код:
function IsGoodNumeric(s){
	return parseFloat(s.replace(/\,/gi,'.'))!=NaN;
}
function IsGoodInt(s){
	num=parseInt(s);
	return (num ^ 0) === num;
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.02.2015, 18:04   #5
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,619
По умолчанию

Есть нативный
Код:
isNaN(value);
Ну а если все и сразу - тогда
Код:
function isNumber(n) {
  return Object.prototype.toString.call(n) !== '[object Array]' &&!isNaN(parseFloat(n)) && isFinite(n);
}
MaTBeu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввести число. Если оно положительное, найти его квадратный корень. Если отрицательное - возвести в квадратВвести число. Если оно п FYNZIK Паскаль, Turbo Pascal, PascalABC.NET 1 18.02.2014 16:29
Дано трехзначное число. Если в сумме его цифр присутствует число 7,то число записать в зеркальном виде ( Паскаль ) Эля777 Помощь студентам 5 22.04.2013 23:23
Если число входит в диапазон, то рядом с ним записывается число, определенное для диапазона. Sundreamer Microsoft Office Excel 9 28.12.2011 19:40
Дан текст.Если первый символ текста не является малой латинской буквой, то оставить его без изменения vesdesvet Помощь студентам 0 25.11.2011 13:21
Паскаль.Задание на строки,не понимаю как его сделать,если кто может,объясните... Меффистоф Помощь студентам 4 25.08.2010 10:05