[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Калькулятор с ajax запросом
Renegade2204
Народ, всем привет, нужна помощь. Делаю калькулятор. При вводе 010/2 выводит результат 4, соответственно я так понял программа считает 010 в восьмеричной системе. Как сделать чтобы программа воспринимала 010 как 10. Подскажите пожалуйста как изменить код.

var calculatorObject = {
defaultValue: '0.00',
operators: ['+', '-', '*', '/'],
sequence: [],
urlCalculate: 'calculate.php',
isNumber: function (value) {
return !isNaN(parseFloat(value));
},
calculate: function () {
jQuery.post(calculatorObject.urlCalculate, { sequence: calculatorObject.sequence }, function (data) {
if (!data.error) {
$('#calculatorResult').html(data.result);
calculatorObject.sequence = [];
}
}
, 'json');
},
trigger: function (obj) {
if (obj.length > 0) {
obj.find('ul li').live('click', function () {
$(this).siblings('li').removeClass('active'); // siblings - получаем все li
$(this).addClass('active');

var thisItem = $(this).attr('data-value'); // получаем значение атрибута
var thisValue = $('#calculatorResult').text();

switch (thisItem) {
case '=':
calculatorObject.sequence.push(thisValue);
calculatorObject.calculate();
break;

case 'c':
calculatorObject.sequence = [];
$('#calculatorResult').html(calculatorObject.defaultValue);
break;

case calculatorObject.operators[0]:
case calculatorObject.operators[1]:
case calculatorObject.operators[2]:
case calculatorObject.operators[3]:

calculatorObject.sequence.push(thisValue);

if (calculatorObject.sequence.length > 0) {
//если последний элемент в массиве число то всё хорошо
// добавляем оператор в массив

if (calculatorObject.isNumber(calculatorObject.sequence[calculatorObject.sequence.length - 1])) {
calculatorObject.sequence.push(thisItem);
// в ином случае перезаписsdftv последний элемент
}
else {
calculatorObject.sequence[calculatorObject.sequence.length - 1] = thisItem;
}
}



//$('#calculatorResult').append(thisItem);
$('#calculatorResult').html(thisItem);

break;

default:

// если текущее значение не является оператором
if (jQuery.inArray(thisValue, calculatorObject.operators) === -1) {
if (thisValue !== calculatorObject.defaultValue) {
$('#calculatorResult').html(thisValue + thisItem);
}
else {
$('#calculatorResult').html(thisItem);
}
}

else {
$('#calculatorResult').html(thisItem);
}
}
}
);
}
}
}
;
$(function () {
calculatorObject.trigger($('#calculator'));
});



<?php
if (isset($_POST['sequence']))
{
//$a = explode($_POST['sequence'][1],$_POST['sequence'][2]);
$values = array_filter($_POST['sequence'], function($value) {
return is_numeric($value) || in_array($value, array('+', '-', '/', '*'));
});

if (!empty($values))
{
//$calculation = 'return ('.$a[0].$_POST['sequence'][1].$a[1].');';
$calculation = 'return ('.implode($values).');';
$value = eval($calculation);
echo json_encode(array('result' => number_format($value, 2)));
}
}

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.