Javascript.RU

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

Дробные числа
Как добавить операции с дробными числами в калькулятор?
<html>
<head>
<style>
.main-label {color:red;}
li {color:blue;}
</style>
<script type="text/javascript" src="jquery-3.1.0.js"></script>
<script type="text/javascript">
leftPart = '';
rightPart = '';
command='';
result = '0';
currentOperand = 'left';
function digitPress(elem){
	if (currentOperand=='left'){
		leftPart = leftPart+elem.value;
	}
	else{
		rightPart = rightPart+elem.value;
	}
	$('#result').val($('#result').val()+elem.value);
	var tmp = '';
}
function commandPress(elem){
	if(leftPart==''){
		leftPart='0';
	}
	$('#result').val($('#result').val()+elem.value);
	command=elem.id;
	currentOperand='right';
}
function doCalc(){
	switch(command){
		case 'plus':
			result = parseInt(leftPart)+parseInt(rightPart);
			break;
		case 'minus':
			result = parseInt(leftPart)-parseInt(rightPart);
			break;
		case 'star':
			result = parseInt(leftPart)*parseInt(rightPart);
			break;
		case 'division':
			result = parseInt(leftPart)/parseInt(rightPart);
			break;
	}
	leftPart = result;
	currentOperand = 'left';
	rightPart = '';
	$('#result').val(result);
}

</script>
</head>
<body>
<div class='main-label'>Результат</div>
<input id='result'></input><button id='calc' onclick='doCalc()'>=</button>
<div class='main-label'>Табличный вариант</div>
<table>
<!--<tr>
<td id='minus'>-</td><td id='star'>*</td><td id='div'>/</td>
</tr>-->
<tr>
	<td><button id='t1' value='1' onclick='digitPress(this)'>1</button></td>
	<td><button id='t2' value='2' onclick='digitPress(this)'>2</button></td>
	<td><button id='t3' value='3' onclick='digitPress(this)'>3</button></td>
	<td><button id='plus' value='+' onclick='commandPress(this)'>+</button></td>
</tr>
<tr>
	<td><button id='t4' value='4' onclick='digitPress(this)'>4</button></td>
	<td><button id='t5' value='5' onclick='digitPress(this)'>5</button></td>
	<td><button id='t6' value='6' onclick='digitPress(this)'>6</button></td>
	<td><button id='minus' value='-' onclick='commandPress(this)'>-</button></td>
</tr>
<tr>
	<td><button id='t7' value='7' onclick='digitPress(this)'>7</button></td>
	<td><button id='t8' value='8' onclick='digitPress(this)'>8</button></td>
	<td><button id='t9' value='9' onclick='digitPress(this)'>9</button></td>
	<td><button id='star' value='*' onclick='commandPress(this)'>*</button></td>
</tr>
<tr>
	<td></td>
	<td><button id='t0' value='0' onclick='digitPress(this)'>0</button></td>
	<td><button id='t.' value='.' onclick='digitPress(this)'>.</button></td>
	
	<td><button id='division' value='/'onclick='commandPress(this)'>/</button></td>
</tr>
</table>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 05.12.2017, 21:03
Аватар для void()
Профессор
Отправить личное сообщение для void() Посмотреть профиль Найти все сообщения от void()
 
Регистрация: 11.08.2017
Сообщений: 208

QweQ,
Убрать - "parseInt()", ибо эта функция приводит числа к целому.
И использовать унарный оператор - "+", который приводит строку к числу.

<html>
<head>
<style>
.main-label {color:red;}
li {color:blue;}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
leftPart = '';
rightPart = '';
command='';
result = '0';
currentOperand = 'left';
function digitPress(elem){
	if (currentOperand=='left'){
		leftPart = leftPart+elem.value;
	}
	else{
		rightPart = rightPart+elem.value;
	}
	$('#result').val($('#result').val()+elem.value);
	var tmp = '';
}
function commandPress(elem){
	if(leftPart==''){
		leftPart='0';
	}
	$('#result').val($('#result').val()+elem.value);
	command=elem.id;
	currentOperand='right';
}
function doCalc(){
	switch(command){
		case 'plus':
			result = +leftPart+ +rightPart;
			break;
		case 'minus':
			result = +leftPart- +rightPart;
			break;
		case 'star':
			result = +leftPart* +rightPart;
			break;
		case 'division':
			result = +leftPart/ +rightPart;
			break;
	}
	leftPart = result;
	currentOperand = 'left';
	rightPart = '';
	$('#result').val(result);
}

</script>
</head>
<body>
<div class='main-label'>Результат</div>
<input id='result'></input><button id='calc' onclick='doCalc()'>=</button>
<div class='main-label'>Табличный вариант</div>
<table>
<!--<tr>
<td id='minus'>-</td><td id='star'>*</td><td id='div'>/</td>
</tr>-->
<tr>
	<td><button id='t1' value='1' onclick='digitPress(this)'>1</button></td>
	<td><button id='t2' value='2' onclick='digitPress(this)'>2</button></td>
	<td><button id='t3' value='3' onclick='digitPress(this)'>3</button></td>
	<td><button id='plus' value='+' onclick='commandPress(this)'>+</button></td>
</tr>
<tr>
	<td><button id='t4' value='4' onclick='digitPress(this)'>4</button></td>
	<td><button id='t5' value='5' onclick='digitPress(this)'>5</button></td>
	<td><button id='t6' value='6' onclick='digitPress(this)'>6</button></td>
	<td><button id='minus' value='-' onclick='commandPress(this)'>-</button></td>
</tr>
<tr>
	<td><button id='t7' value='7' onclick='digitPress(this)'>7</button></td>
	<td><button id='t8' value='8' onclick='digitPress(this)'>8</button></td>
	<td><button id='t9' value='9' onclick='digitPress(this)'>9</button></td>
	<td><button id='star' value='*' onclick='commandPress(this)'>*</button></td>
</tr>
<tr>
	<td></td>
	<td><button id='t0' value='0' onclick='digitPress(this)'>0</button></td>
	<td><button id='t.' value='.' onclick='digitPress(this)'>.</button></td>
	
	<td><button id='division' value='/'onclick='commandPress(this)'>/</button></td>
</tr>
</table>
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простые числа, не превосходящие заданного числа. jutochka123 Общие вопросы Javascript 2 30.09.2017 13:05
Заставить калькулятор считать дробные числа с запятой. webmanss Элементы интерфейса 3 10.03.2016 16:07
JS задача. Взаимно простые числа sashok Общие вопросы Javascript 5 23.11.2014 10:16
Есть числа от (0 до 100) что бы все эти числа были заменины в итоге например 110 impi Общие вопросы Javascript 4 08.10.2014 08:30
Регулярка на дробные числа shkarbatov Javascript под браузер 14 29.07.2011 01:05