我试图在jquery中总结两个值(值可以是十进制和非十进制值)但它返回的值不正确。
以下是代码
<?php
$licence_cost_inr = 1290.058;
$converted_currency = 64.056;
?>
的jQuery
$(document).ready(function(){
$('input[type=checkbox]').change(function(){
var total = 0;
var txt = '';
var inr = '<?php echo $converted_currency; ?>';
var costinr = '<?php echo $licence_cost_inr; ?>';
$('input:checkbox:checked').each(function(){
total += isNaN(parseInt($(this).val())) ? 0 : parseInt($(this).val());
txt += $(this).attr('data')+', ';
});
var convert = total*inr;
var finalinrcost = convert+costinr;
alert(finalinrcost);
$("#costdisplay").html(total);
$("#inrdisplay").html(finalinrcost);
$("input[name=ap_amount]").val(total);
$("input[name=payment]").val(total);
$("input[name=amount]").val(total*inr+costinr);
$("input[name=apc_2]").val(txt.slice(0,-2));
$("input[name=custom]").val(txt.slice(0,-2));
$("input[name=udf2]").val(txt.slice(0,-2));
});
});
此处finalinrcost
返回不正确的值。预期的总和值例如为1350.67
,但它会返回意外的内容,例如129.04341290.434
。我没有得到错误是什么,因为我只是想添加一些东西。请帮忙。
答案 0 :(得分:2)
因为您用于计算的其中一个值是string
。例如:
'123' + 123 == '123123'
答案 1 :(得分:1)
你可以像这个例子那样做。如果您收到的字符串应该转换为parseInt
或parseFloat
$(document).ready(function(){
var total = 0;
var txt = '';
var inr = '10';
var costinr = '1290.058';
total += 200;
var convert = total*parseFloat(inr);
var finalinrcost = convert+parseFloat(costinr);
alert(finalinrcost);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>