jQuery计数,舍入和排序值

时间:2013-11-26 11:35:43

标签: jquery count rounding

我正在计算报价的3个方面(表格),在提交表格后,使用TCPDF将报价生成为PDF。

但是,对于舍入值和计算单独的增值税几乎没有什么问题。

这是textarea,输入和选择 - >

的方面/材料之一
<form action="pdf/gen-czk-pdf.php" method="get">
<table>
<tr>
<td><textarea name="materialItemName[]"></textarea></td>
<td><input type="text" class="jednotkovaCenaMaterialu" name="materialUnitPrice[]" value="0.00" /></td>
<td><input type="text" class="pocetJednotekMaterialu" name="materialItemQuantity[]" value="1.00" /></td>
<td><select name="materialUnitType[]"><option value="m&#178;">m&#178;</option><option value="m&#179;">m&#179;</option><option value="bm">bm</option><option value="ks">ks</option><option value="kg">kg</option><option value="l">l</option><option value=" "> </option></select></td>
<td><input type="text" class="koeficientMaterialovePolozky" name="materialItemCoeff[]" value="1.00" /></td>
<td><input type="text" class="celkemMaterialovaPolozkaBezDph" name="materialItemPriceNoVat[]" value="0" /></td>
<td><select class="dphPolozkaMaterial" name="materialItemVat[]"><option value="1.21">1.21</option><option value="1.15">1.15</option></select></td>
<td><input type="text" class="celkemMaterialovaPolozkaDph" name="materialItemSumVat[]" value="0" /></td>
<td><input type="text" class="celkemMaterialovaPolozkaSDph" name="materialItemPriceInVat[]" value="0" /></td>
</tr>
</table>
</form>

AND SCRIPT - &gt;

// countig material item price, no VAT
$('.jednotkovaCenaMaterialu, .pocetJednotekMaterialu, .koeficientMaterialovePolozky, .dphPolozkaMaterial, .celkemMaterialovaPolozkaBezDph').live('focus click keyup keypress blur', function() {
    var sumamaterialovapolozkabezdph = 0;
        $('.celkemMaterialovaPolozkaBezDph').each( function(key, val){
            sumamaterialovapolozkabezdph+= Number($($('.celkemMaterialovaPolozkaBezDph')[key]).val());
        Number($($('.celkemMaterialovaPolozkaBezDph')[key]).val(( Number($($('.jednotkovaCenaMaterialu')[key]).val()) * Number($($('.pocetJednotekMaterialu')[key]).val()) * Number($($('.koeficientMaterialovePolozky')[key]).val()))));
        var totalsumnovat = parseInt($('.materialCelkemBezDph').val())+parseInt($('.montazCelkemBezDph').val())+parseInt($('.vedlejsiNakladyCelkemBezDph').val());
            $('.total-sum').val(totalsumnovat);
// countig material item price, including VAT
    var sumamaterialovapolozkasdph = 0;
        $('.celkemMaterialovaPolozkaSDph').each( function(key, val){
            sumamaterialovapolozkasdph+= Number($($('.celkemMaterialovaPolozkaSDph')[key]).val());
        Number($($('.celkemMaterialovaPolozkaSDph')[key]).val(( Number($($('.jednotkovaCenaMaterialu')[key]).val()) * Number($($('.pocetJednotekMaterialu')[key]).val()) * Number($($('.koeficientMaterialovePolozky')[key]).val()) * Number($($('.dphPolozkaMaterial')[key]).val()))));
        var totalsumincludevat = parseInt($('.materialCelkemSDph').val())+parseInt($('.montazCelkemSDph').val())+parseInt($('.vedlejsiNakladyCelkemSDph').val());
            $('.total-sum-in-vat').val(totalsumincludevat);
    });
// section summary
    $('.materialCelkemBezDph').val(sumamaterialovapolozkabezdph)
    $('.materialCelkemSDph').val(sumamaterialovapolozkasdph);
    });
});

我的问题 - &gt;

第一个问题如何按照以下模式舍入汇总值?当然,所有的值都是未知的。

12205.12500 - &gt; 12,205.13

12205.12499 - &gt; 12,205.12

摘要值 - &gt;

$('.celkemMaterialovaPolozkaBezDph, .celkemMaterialovaPolozkaDph, .celkemMaterialovaPolozkaSDph')

第二个问题如何计算单独的增值税值?

增值税值 - &gt;

$('.celkemMaterialovaPolozkaDph')

增值税值取决于下面提到的模式

.jednotkovaCenaMaterialu * .pocetJednotekMaterialu * .koeficientMaterialovePolozky * (.dphPolozkaMaterial - 1)

我知道我的代码不是最好的,但是我会很感激任何帮助。非常感谢

2 个答案:

答案 0 :(得分:1)

问题1: 你可以用

var num = 12205.12500;
num = Math.ceil(num * 100) / 100;
alert(num); // 12205.13;

掩蔽可以轻松完成

var formattedString = parseFloat("1200000.15").toLocaleString()

formattedString将包含“12,205.13”

答案 1 :(得分:0)

javascript Number对象作为.toFixed()的几个有用的方法,它们将在点之后设置固定的数字位数。

var x = new Number(123.568);
console.log(x.toFixed(1));
console.log(x.toFixed(2));

结果将是

123.6
123.57

http://www.w3schools.com/jsref/jsref_obj_number.asp

您还可以使用Math库函数。有3个有用的函数,.floor().round().ceil()

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor