1

金額が 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_amount1000 未満の場合、関数は正しく評価されます。コンソール出力は次のとおりです。

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);
}
4

2 に答える 2