3

在执行 sqrt() 之后

如何检查结果是否仅包含整数?

我在想正则表达式检查小数 - 如果它包含小数,这意味着它没有均匀地根植于整数。这对我来说已经足够了。

但是这段代码不起作用......

result = sqrt(stringContainingANumber);
decimal = new RegExp(".");
document.write(decimal.test(result)); 

我敢打赌,还有其他方法可以完成同样的事情。

4

6 回答 6

7

. 表示任何字符。你必须引用点。“\。”

或者你可以测试

if (result > Math.floor(result)) {
   // not an decimal
}
于 2012-03-23T12:05:45.090 回答
4

您可以使用%运算符:

result % 1 === 0;  // rest after dividing by 1 should be 0 for whole numbers
于 2012-03-23T12:01:38.300 回答
3

使用indexOf()

​var myStr = "1.0";
myStr.indexOf("."); // Returns 1

// Other examples
myStr.indexOf("1"); // Returns 0 (meaning that "1" may be found at index 0)
myStr.indexOf("2"); // Returns -1 (meaning can't be found)
于 2012-03-23T12:01:06.217 回答
1

“。” 在正则表达式语法中具有“任何”含义,您需要使用“\”对其进行转义。

于 2012-03-23T12:00:19.430 回答
0

如果它是一个字符串,我们可以使用 split 函数,然后检查返回的数组的长度。如果它大于 1,则它有小数点,否则没有:)。但是这对数字不起作用:(。请参阅最后的编辑。它现在也适用于字符串:)

function checkDecimal() {
    var str = "202.0";
    var res = str.split(".");
    alert(res.length >1);
    var str1 = "20";

    alert(str1.split(".").length>1);
 }

希望它可以帮助某人。快乐学习:)

于 2015-08-13T20:12:15.630 回答
0

您是否正在寻找包含十进制数字的检查字符串,您可以尝试这样

var num = "123.677";
if (!isNaN(Number(num)) {
alert("decimal no");
}
else {
alert("Not a decimal number");
}
于 2015-12-10T21:55:24.770 回答