我写了一个 javascript 函数,它应该检查一个金额是否大于 0 并且小于某个金额。例如,如果应付的总金额为 800.00 美元,并且用户尝试支付 1100 美元,我希望函数首先检查支付的金额 ($1100) 是否大于 0(真)并且支付的金额是否也更少超过应付总额(假)。我很确定我的逻辑没问题,但是这个函数没有正常工作:
function validate_payment_amount() {
var payment_amt = get_amount_paying(); // 1100.00
var amt_due = get_amount_due(); // 800.00
console.log('Is ' + payment_amt + ' greater than 0?: ' + (payment_amt > 0));
console.log('&&');
console.log('Is ' + payment_amt + ' less than or equal to ' + amt_due + '?: ' + (payment_amt <= amt_due));
return payment_amt > 0 && payment_amt <= amt_due;
}
payment_amount
如果小于 1000 ,该函数会正确评估,这是控制台输出:
Is 999.00 greater than 0?: true
&&
Is 999.00 less than or equal to 892.50?: false
所以上面的工作正常。但是,当我给它一个大于 1000的数字时,控制台会显示:
Is 1001.00 greater than 0?: true
&&
Is 1001.00 less than or equal to 892.50?: true
任何人都可以对此有所了解吗?
编辑:
get_amount_paying()
和get_amount_due()
:
function get_amount_due() {
return parseFloat($("#still_due").data('amount')).toFixed(2);
}
function get_amount_paying() {
return parseFloat($("#make_payment").val()).toFixed(2);
}