【问题标题】:how to check variable type in javascript [duplicate]如何在javascript中检查变量类型[重复]
【发布时间】:2015-03-02 15:59:21
【问题描述】:

我需要检查一个变量是整数还是小数。 如果整数只需要显示整数,如果不显示小数点向上 2。 我只是用了

toFixed(2)

但它也会显示带两个小数点的整数

<script>
function getDisco() {

  gross = "<?php echo $GROSS_NET ?>";
  dis = document.getElementById('Discount').value;

  document.form3.Discount.value = ((dis/100) * 100).toFixed(2) ;

 document.form3.dis_perc.value =  (((dis/gross) * 100)).toFixed(2) ;
 document.form3.net_tot.value = (gross - dis).toFixed(2);
 document.form3.gross.value = ((gross/100) * 100).toFixed(2);

}
</script>

【问题讨论】:

  • 我不认为这是如何判断一个数字是否为整数,而是一个简单的“如何格式化数字”问题。考虑:function formatNumber(n) {return n.toFixed(2).replace(/\.00/,'')}.
  • @RobG Thanx 这是我得到的一个简单答案,它的工作
  • @RobG:如果您想稍微编辑问题以适合您的答案(对我来说很有意义),很高兴重新打开。
  • @FelixKling——由 OP 决定,很高兴保持原样。 ;-)
  • @RobG 我只是把 belove 改成

标签: javascript variables


【解决方案1】:

一种简单的方法是使用parseInt 函数获取整数值并检查它是否与原始值相同。如果是,则 value 为整数,否则为小数。

function func(value) {
    var integer = parseInt(value);
    if(integer === value) {
        // value is an integer
    } else {
        // value is a decimal
    }
}

function showResult() {
  var num = document.getElementById("num").value;
  if(num) {
      func(num);
  }
}

function func(value) {
    var integer = parseInt(value);
    if(integer == value) {
        document.getElementById("result").value = integer;
    } else {
        document.getElementById("result").value = parseFloat(value).toFixed(2);
    }
}
<input id="num" type="text" placeholder="Enter number here">
<button onclick="showResult();">Show Result</button><br />
<p>Result</p><input id="result" type="text" readonly>

【讨论】:

    【解决方案2】:
    isInteger = function(input) {
      if (typeof input === "number")
        return input % 1 === 0;
    }
    

    这将返回输入是否为 int。

    测试:

    isInteger(1);      // true
    isInteger(1.01);   // false
    isInteger("2");    // false
    isInteger("2.02"); // false    
    

    【讨论】:

    • @RobG,更新了答案。如果您指的是旧答案,它最终会返回false,因为NaN % 1 === 0 是假的。
    • 是的,正在播放评论标签。 ;-) 自从它关闭以来,我的答案作为评论发布。
    猜你喜欢
    • 2021-11-17
    • 2019-09-02
    • 2012-10-10
    • 1970-01-01
    • 2014-01-20
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 2011-04-28
    相关资源
    最近更新 更多