为什么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;
}
最佳答案
这是因为 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;
}
关于javascript - 为什么这段代码中的一个变量大于另一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10021220/