我正在尝试添加两个十进制值,但返回的总和是纯整数。怎么了?我找不到它。欢迎任何帮助。
jQuery(".delivery-method #ship_select").change(function(){
var cost = jQuery(this).val();
jQuery("#delivery_cost").val(cost); //returns 20.00
var tot = parseInt(cost) + parseInt(total); //total returns 71.96
});
使用代码我只获得91
而不是91.96
答案 0 :(得分:30)
使用parseFloat()
代替parseInt()
。
jQuery(".delivery-method #ship_select").change(function(){
var cost = jQuery(this).val();
jQuery("#delivery_cost").val(cost); //returns 20.00
var tot = parseFloat(cost) + parseFloat(total); //total returns 71.96
});
答案 1 :(得分:7)
您必须使用parseFloat
而不是parseInt
jQuery(".delivery-method #ship_select").change(function(){
var cost = jQuery(this).val();
jQuery("#delivery_cost").val(cost); //returns 20.00
var tot = parseFloat(cost) + parseFloat(total); //total returns 71.96
});
答案 2 :(得分:1)
使用parseFloat而不是parseInt并检查。
答案 3 :(得分:1)
整数算术向下舍入。请改用parseFloat
。
答案 4 :(得分:1)
使用parseFloat()
代替parseInt()
var tot = parseFloat(cost) + parseFloat(total);
但是,因为你想严格限制在两位小数
function roundNumber(num, dec) {
var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
return result;
}
var tot = roundNumber((cost+total), 2);