如何在javascript中检查变量类型[重复]

Posted

技术标签:

【中文标题】如何在javascript中检查变量类型[重复]【英文标题】:how to check variable type in javascript [duplicate] 【发布时间】: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 改成 【参考方案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 是假的。 是的,正在播放评论标签。 ;-) 自从它关闭以来,我的答案作为评论发布。

以上是关于如何在javascript中检查变量类型[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在javascript中检查未定义的类型[重复]

如何检查变量是不是是javascript中的类型化数组?

JavaScript,当变量作为参数传递时更改函数内部的变量值[重复]

如何检查变量是否是javascript中的类型化数组?

如何检查类型中的字符串[重复]

在Javascript中检查字符串和整数的字符串变量[重复]