为什么rfd_total > max_rfd
是真的?我不明白以下代码中rfd_total
如何大于max_rfd
:
max_rfd = parseFloat(jQuery('#mx-rfd_'+order_id).val()).toFixed(2);
rfd_total = parseFloat(items_total+tax_total+shipping+allowances*1).toFixed(2);
if( rfd_total > max_rfd)
{ if(isNaN(rfd_total)) alert('rfd_total isNaN'); // not triggered
if(isNaN(max_rfd)) alert('max_rfd isNaN'); // not triggered
alert(rfd_total); // alerts 51.16
alert(max_rfd); // alerts 102.32
return false;
}
答案 0 :(得分:4)
这是因为rfd_total
和max_rfd
是字符串。
您会注意到"51.16" > "102.32"
返回true。
toFixed()
返回一个字符串。
您需要将变量强制转换为数字,以便了解如何使用快速搜索。
或者您可以使用像这样的功能保持代码清洁并正确执行
function decimalRoundTo(n, decimalPlaces) {
var d = Math.pow(10, decimalPlaces);
return Math.round(n*d)/d;
}