Javascript比较无法正常工作

时间:2014-03-14 21:14:28

标签: javascript

我正在使用系统的结算部分,并使用javascript在我的TextBox中放置一个事件,我有两个文本框。首先是cashonhandchange文本框。但我想知道为什么两个文本框之间的比较没有给我正确的答案。这是我的代码:

  $(document).ready(function () {
        $(document).on('click', '.btn-pay-bill', function () {
            var cash = parseFloat(Number($('.cashonhand').val())).toFixed(2);
            var amtdue = parseFloat(Number($('.amtdue').text())).toFixed(2);
            if (cash <= amtdue) {
                alert(cash + ' ' + amtdue + ' ' +"Insufficient Cash!!!");
                return false;
            }  
            if (cash >= amtdue) {
                return true;
            }
            return false;
        });

那我在这里错过了什么?这是我将100,00078,200.00进行比较时的输出:

enter image description here

1 个答案:

答案 0 :(得分:4)

您按字母顺序而非数字进行比较。

请注意.toFixed() returns a string

  
    

<强>返回

         

不使用指数表示法且在小数位后面具有正好位数位的数字的字符串表示。

  

您希望在致电.toFixed()

之前进行比较
var cash = parseFloat(Number($('.cashonhand').val()));
var amtdue = parseFloat(Number($('.amtdue').text()));
if (cash <= amtdue) {
   alert(cash.toFixed(2) + ' ' + amtdue.toFixed(2) + ' ' +"Insufficient Cash!!!");
   return false;
}

您只需在显示 UI中的号码时调用.toFixed(),或创建值的单独字符串版本,例如sCash和{{1}或者别的什么。