У меня есть форма с вводом, правильно выложенным с использованием идентификаторов и т. Д. Я развернул небольшую функцию jQuery для вычисления переменных формы. По сути, я хочу рассчитать общий НДС, а затем Grand Total.Вычисление формы jQuery - работает, но странные результаты
Пример кода был взят из http://forum.jquery.com/topic/calculation-on-form-fields, и это работает нормально. Однако я умножение/деление работает на НДС, но добавление дает некоторые очень странные результаты. вход
Пример данных:
siteFee = 3000
кол-во = 1
кубовые = 20
Функция НДС (a * b * c) /100
вычисляет ОК и дает 600, который был бы правильным, однако GrandTotal выходит в 3000611.6659999999999 что не имеет большого смысла. Похоже, он пытается объединить ценности вместе, а не добавлять их вместе, но опять же это тоже не происходит !.
JQuery Код:
<script>
$(document).ready(function() {
function compute() {
var a = $('#siteFee').val();
var b = $('#qty').val();
var c = $('#vat').val();
var d = $('#incVAT').val();
var totalVAT = (a * b * c)/100;
var grandTotal = a + d;
$('#incVAT').val(totalVAT);
$('#total').val(grandTotal);
}
$('#siteFee, #qty, #siteFeeID, #vat').change(compute);
});
</script>
Обратите внимание, что #siteFeeID
это просто другая форма переменной, где я делаю Ajax тянуть, чтобы получить правильные значения для #siteFee
, так что не стоит на самом деле вопрос, но думал, я хотел бы упомянуть Это.
Любые указатели были бы замечательными.
Приветствия Ник
Я хотел бы поблагодарить вас, а также @iBlue и Arun P Johny, поскольку это, похоже, привело меня немного дальше. Это имело бы смысл и, похоже, дало мне более значимые данные. В настоящее время незначительная проблема заключается в том, что grandTotal не дает правильного ответа.Я разделил два вычисления на отдельные сценарии, чтобы получить четкие строки разделения в коде. Не могли бы вы посоветовать событие 'change'? Нужно ли мне иметь все поля, которые могут быть изменены там или только один или два соответствующих? –
Кроме того, результат имеет более 2 знаков после запятой. Могу ли я интегрировать функцию округления в выходы? Например, '$ ('# total'). Val (grandTotal), 2;'. Я знаю, что это не сработает, но предположим, что есть что-то подобное. Я пойду и посмотрю, но подумал, что я брошу его в этот вопрос, поскольку он будет применим для других, которые позже просмотрят это сообщение. –
для округления вы можете использовать метод пола в javascript –