0

特定の入力に対して誤った値を与え続けるこの非常に単純な関数があり、どこが間違っているのかわかりません。

photocount が 20 ~ 59 に設定されている場合、if ステートメントはトリガーされません。60 以上および 19 以下の値は正しく機能します。

例:

o_priceperphoto = 0.50

o_photocount = 30

o_maxphotoprice = 11

o_photoprice = 15 (11 である必要があります)

理由がわかりません。誰かが何がうまくいかないか見てくれることを願っています。

function photoprice(o){
  var priceperphoto = $('#o_priceperphoto').val();
  var photocount = $('#o_photocount').val();
  var maxphotoprice = $('#o_maxphotoprice').val();
  var photoprice = parseFloat(priceperphoto * photocount).toFixed(2);

  // 20 - 59 errors
  if(photoprice > maxphotoprice){
    $('#o_photoprice').val(maxphotoprice);
  }

};
4

2 に答える 2

0

float 値と string 値を比較しています

タイプキャストparseFloat(photoprice)parseFloat(maxphotoprice)

function photoprice(o){
      var priceperphoto = $('#o_priceperphoto').val();
      var photocount = $('#o_photocount').val();
      var maxphotoprice = $('#o_maxphotoprice').val();
      var photoprice = parseFloat(priceperphoto * photocount).toFixed(2);

      // 20 - 59 errors
      if(parseFloat(photoprice) > parseFloat(maxphotoprice)){//need to typecast to float
        $('#o_photoprice').val(maxphotoprice);
      }

    };

浮動小数点値と文字列値を比較しています

于 2013-09-20T11:09:43.030 に答える
0

これを試して

if(parseFloat(photoprice) > parseFloat(maxphotoprice)){
  $('#o_photoprice').val(maxphotoprice);
}
于 2013-09-20T11:07:46.677 に答える