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

尝试这个

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

您正在比较浮点值和字符串值

类型转换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 回答