Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.07.2012, 23:57
Интересующийся
Отправить личное сообщение для nanoT1m Посмотреть профиль Найти все сообщения от nanoT1m
 
Регистрация: 21.07.2012
Сообщений: 25

Калькулятор. Ошибки в расчетах.
<html>
	<head>
		<meta charset="utf-8">
	</head>
	<body>
	
	<input type="label" id="labelField" />
	<input type="button" onclick="solve()" value="=">
	<br />
	
	<input type="button" onclick="getValue(1)" value="1">
	<input type="button" onclick="getValue(2)" value="2">
	<input type="button" onclick="getValue(3)" value="3">
	<input type="button" onclick="clearExpr()" value="c">
	<br />
	
	<input type="button" onclick="getValue(4)" value="4">
	<input type="button" onclick="getValue(5)" value="5">
	<input type="button" onclick="getValue(6)" value="6">
	<input type="button" onclick="getValue('*')" value="*">
	<br />
	
	<input type="button" onclick="getValue(7)" value="7">
	<input type="button" onclick="getValue(8)" value="8">
	<input type="button" onclick="getValue(9)" value="9">
	<input type="button" onclick="getValue('/')" value="/">
	<br />
	
	<input type="button" onclick="getValue(0)" value="0">
	<input type="button" onclick="getValue('+')" value="+">
	<input type="button" onclick="getValue('-')" value="-">
	<input type="button" onclick="getValue('.')" value=".">

<script>
var val = '';

var expr = {
	val: '',
	err: false
	};

function getValue(val) {
   if (expr.err) {
   	document.getElementById('labelField').value ='';
   	expr.err = false;
   }
	val += this.val;
	document.getElementById('labelField').value += val;
	}
	
function clearExpr() {
	document.getElementById('labelField').value = '';
	}
	
function solve() {
	expr.val = document.getElementById('labelField').value;
	try {
		expr.val = eval(expr.val);
		if (!isFinite(expr.val)) throw new Error();
		document.getElementById('labelField').value = expr.val;
	}catch (e) {
		document.getElementById('labelField').value = 'Ошибка';	
		expr.val = '';
		expr.err = true;
	}
}

</script>
	</body>
</html>



Начал изучение JS с создания простенького калькулятора. Наткнулся на проблему: к примеру, если попробовать посчитать значение выражения 1-1.9 то получится результат -0,89999999999. С чем это связанно?
Ответить с цитированием
  #2 (permalink)  
Старый 22.07.2012, 00:04
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

ЧаВО - часто задаваемые вопросы (faq) п.8
Читайте faq прежде чем задать вопрос.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 22.07.2012, 00:22
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

nanoT1m, смотрите каждое из чисел и в toFixed() подставляйте max количество знаков после "запятой"
и такого элемента не существует
Сообщение от nanoT1m Посмотреть сообщение
<input type="label" id="labelField" />
Ответить с цитированием
  #4 (permalink)  
Старый 22.07.2012, 23:52
Интересующийся
Отправить личное сообщение для nanoT1m Посмотреть профиль Найти все сообщения от nanoT1m
 
Регистрация: 21.07.2012
Сообщений: 25

Спасибо почитал учебник много интересного узнал по этой проблеме.
lord2kim, написал что первое в голову пришло (: странно, но этот label все же работает.
Ответить с цитированием
  #5 (permalink)  
Старый 23.07.2012, 02:42
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Неизвестные типы input type трактуются как text:
<input>
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Калькулятор + форма заказа jkdl Элементы интерфейса 8 15.09.2012 14:10
Помогите вытащить отсюда калькулятор sergiocharm Общие вопросы Javascript 8 17.04.2012 22:22
Сделать калькулятор на сайт. asderru Работа 1 22.07.2010 13:46
Калькулятор работает ТОЛЬКО в ie6 (вопрос ламера) st_sinner Javascript под браузер 3 17.04.2010 18:11
Как узнать какие ошибки произошли при парсинге xml файла faunder Events/DOM/Window 0 12.09.2008 14:17