2015-02-05 3 views
2

Я пытаюсь округлить поле .qty до ближайшего целого числа. Я действительно не уверен, где разместить это в приведенном ниже фрагменте кода? Я так понимаю, я должен использовать Math.ceil()?jQuery Round до ближайшего целого числа

function(){ 
    var sm = parseFloat($(this).val()); 
    var tsm = parseFloat($('.tsm', $(this).parent().parent()).val()); 
    var calc = (sm*tsm); // total tiles needed 

    if($('.addwaste', $(this).parent().parent()).is(':checked')){ 
     var onepercent = calc/100; 
     var sevenpercent = Math.ceil(onepercent*7); 
     calc+=sevenpercent; 
    } 

    $('.qty', $(this).parent().parent()).val(calc); 
    $('div.product form.cart .qty').val(calc); 

    var rawprice = parseFloat($('.rawprice', $(this).parent().parent()).val()); 
    var total = (rawprice*calc).toFixed(2); 

    $('.total', $(this).parent().parent()).html(total); 
    $('div.product .price .amount').html('£' + total);  
} 

ответ

11

это можно сделать с помощью основного JavaScript: либо использования:

Math.floor(number here); <- this rounds it DOWN so 4.6 becomes 4 
Math.round(number here); <- this rounds it UP so 4.6 becomes 5 

его либо пола и круглого или на пол и круглый.

так с вашим кодом было бы:

function(){ 
var sm = parseFloat($(this).val()); 
var tsm = parseFloat($('.tsm', $(this).parent().parent()).val()); 
var calc = (sm*tsm); // total tiles needed 

if($('.addwaste', $(this).parent().parent()).is(':checked')){ 
    var onepercent = calc/100; 
    var sevenpercent = Math.ceil(onepercent*7); 
    calc+=sevenpercent; 
} 

calc = Math.round(calc); 

$('.qty', $(this).parent().parent()).val(calc); 
$('div.product form.cart .qty').val(calc); 

var rawprice = parseFloat($('.rawprice', $(this).parent().parent()).val()); 
var total = (rawprice*calc).toFixed(2); 

$('.total', $(this).parent().parent()).html(total); 
$('div.product .price .amount').html('£' + total);  
} 
+0

Могу ли я разместить переменную внутри этой функции? Спасибо. –

+3

Учитывая, что вопрос «round up», вы можете использовать 'Math.ceil()' вместо 'Math.floor()'? @ ru-pearls, до тех пор, пока эта переменная имеет или удерживает число, то да. –

+1

Я отредактировал сообщение с вашим примером внутри, я считаю, что выровнять нужно было округлить, поэтому я использовал это –

Смежные вопросы