0

为什么是rfd_total > max_rfd真的?我不明白如何rfd_totalmax_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;
}
4

1 回答 1

4

这是因为rfd_totalanmax_rfd是字符串。

您会注意到"51.16" > "102.32"返回 true。

toFixed()返回一个字符串。

您需要将变量强制转换为数字,您可以通过快速搜索了解如何操作。

或者你可以保持你的代码干净,并使用这样的函数正确地完成它

function decimalRoundTo(n, decimalPlaces) {
    var d = Math.pow(10, decimalPlaces);
    return Math.round(n*d)/d;
}
于 2012-04-05T00:43:21.680 回答