我创建了一个JavaScript方法来检查数字是否为浮点数。每次我测试浮点方法时,它都会一直返回FALSE。我不确定我在做什么错。任何帮助将非常感激!
下面是我的代码..谢谢!
function isFloat(n){
var patt = new RegExp('[+-]([0-9]*[.])?[0-9]+');
return patt.test(n)
}
console.log(isFloat(12.40));
最佳答案
有一种检查数字是否为浮点数的简便方法。只需将底值与原始值进行比较即可。如果它们相同,则为整数。
function isFloat(n) {
return Math.floor(n) !== n;
}
console.log(isFloat(1));
console.log(isFloat(1.2));
console.log(isFloat(12));
console.log(isFloat(12.4));
当且仅当您仅在数字上使用它时,此方法才有效。如果您担心有人传入非数字,可以执行其他检查。
function isFloat(n) {
return typeof n === 'number' && Math.floor(n) !== n;
}
或者,如果您正在运行支持它的环境,则可以使用
Number.isInteger
进一步简化此操作。function isFloat(n) {
return typeof n === 'number' && !Number.isInteger(n);
}
console.log(isFloat(1));
console.log(isFloat(1.2));
console.log(isFloat(12));
console.log(isFloat(12.4));
console.log(isFloat('a'));