0

なぜ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;
}
4

1 に答える 1

4

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;
}
于 2012-04-05T00:43:21.680 に答える