2016-12-15 4 views
3

Как округлить значения налоговых и BRUTTO до 2 знаков после запятой ...JQuery - округлить до 2 знаков после запятой и вычисления с этим числом

Я пытался использовать .toFixed (2), но возвращает строку и то я больше не могу рассчитывать.

Если кто-то может обновить скрипку и заставить ее работать, пожалуйста?

И попробуйте ввода числа 23

DEMO Fiddle

// calculate brutto and tax 
$(document).on('keyup paste', '#netto', function() { 

    var netto = $("#netto").val(); 
    $("#brutto").val(netto * 1.19).toFixed(2); 
    var brutto = $("#brutto").val(); 
    $("#tax").val(brutto - netto); 

}); 
+0

'' Math.round (netto * 1.19); ''? https://jsfiddle.net/ze5tsgy9/10/ –

+0

@EhsanSajjad это округляет его до целого ... мне нужно десятичное также – lewis4u

+0

@ lewis4u Пожалуйста, снова проверьте мой ответ, отредактированный сейчас. Надеюсь, это поможет вам. Спасибо –

ответ

3

Несколько вопросов в вашем коде:

1) Вы не требуется делегирование событий, если у вас нет динамически загружаемых элементов.

2) вы должны всегда анализировать значения перед выполнением каких-либо математических операций над ними.

3) Вы используете .toFixed(2) метод jquery, который выдает ошибку. toFixed следует использовать вместо значений float. Также убедитесь, что toFixed используется при установке оба значения TextBox:

// calculate brutto and tax 
$('#netto').on('keyup paste', function() { 
    var netto = parseFloat($("#netto").val()); 
    $("#brutto").val((netto * 1.19).toFixed(2)); 
    var brutto = parseFloat($("#brutto").val()); 
    $("#tax").val((brutto - netto).toFixed(2)); 
}); 

Working Demo

+1

это правильный ответ! – lewis4u

1

Попробуйте это может быть, это поможет вам,

$(document).on('keyup paste', '#netto', function() { 

    var netto = parseFloat($("#netto").val()).toFixed(2); 
    $("#brutto").val((netto * 1.19).toFixed(2)); 
    var brutto = parseFloat($("#brutto").val()).toFixed(2); 
    $("#tax").val((brutto - netto).toFixed(2)); 

}); 
+0

Как налоговые, так и брутто должны быть округлены до двух знаков после запятой – lewis4u

+0

Пожалуйста, проверьте сейчас, изменен для вас. :), Проблема заключалась в том, что вы не использовали функцию toFixed в нужном месте. –

+0

спасибо, но @Milind Anatwar был первым, кто дал правильный ответ. – lewis4u

0

Вне контекста JQuery, вы можете эффективно использовать следующую функцию:

function round(value, precision) { 
    var aPrecision = Math.pow(10, precision); 
    return Math.round(value*aPrecision)/aPrecision; 
} 

Вот ваша обновленная скрипка, демонстрирующая ее использование: https://jsfiddle.net/yuq6kLn2/