金額が 0 より大きく、特定の金額より小さいかどうかをチェックすることになっている JavaScript 関数を作成しました。たとえば、合計金額が 800.00 ドルで、ユーザーが 1100 ドルを支払おうとした場合、最初に、支払われている金額 (1100 ドル) が 0 よりも大きく (true)、支払われている金額も少ないことをチェックする関数が必要です。未払いの合計金額よりも (false)。私のロジックは問題ないと確信していましたが、この関数は正しく動作していませんでした:
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);
}