如何在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中检查变量类型[重复]的主要内容,如果未能解决你的问题,请参考以下文章