変数に数値が含まれていて、整数であるかどうかをテストするにはどうすればよいですか?与えられた数が整数かどうかを検出するには?
if (1.589 == integer) // false
if (2 == integer) // true
手がかりはありますか?
変数に数値が含まれていて、整数であるかどうかをテストするにはどうすればよいですか?与えられた数が整数かどうかを検出するには?
if (1.589 == integer) // false
if (2 == integer) // true
手がかりはありますか?
num % 1 === 0
これは最初Number
を入力するnum
を変換するので、整数に変換することができる任意の値は、試験(例えば'42'
、true
)を通過します。
あなたは
typeof num === 'number'
のチェックに加え、これらを除外したい場合にも、これを行うために型指定されていないチェックと
parseInt(num) === num
用すなわち
parseInt(num) == num
をparseInt()
を使用することができます型付きのチェックのために。
テストは等しくないことに注意してください。parseInt()
で確認すると、最初にString
に変換されますので、true
はチェックに合格しません。
はまた、これらがparseInt()
ではなくによって認識されるようparseInt()
経由型なしのチェックが正しく進数文字列を処理しますが、オクタルのために失敗します(先行ゼロすなわち数字列)ことに注意してください。先行ゼロを持つ10進文字列を処理する必要がある場合は、基数引数を指定する必要があります。
これは、ありがとうございます。 – jirkap
valが数字でない場合はtrueを返すisNaN(val)というjavascript関数があります。 おっと:あなたは数としてのvalを使用したい場合は
は、あなたがのparseInt()またはparseFloatは()
EDITを使用してキャストする必要があります。あなたが能力を解析javasを利用したり、同様剰余演算子%を試す可能性がどちらか
if((typeof(no)=='number') && (no.toString().indexOf('.')==-1))
関数の名前からちょうど、 "isNaN"はvalが "Not * a Number"ならば真を返すと思います。これはNaNの略です。打ち間違え? –
isNaN(val)は、valが数値でない場合はtrueを返しますが、非整数の場合もfalseを返します。問題を解決できません。 – Amok
で述べたように、エラーを修正動作しません。
if (parseInt(number, 10) == number)
{
alert(number + " is an integer.");
}
8.000は依然として整数なので、動作しません。 –
おそらく、整数 – bdukes
Hmmの定義(および使用例)に依存します。真実。本質的に数学的な問題については、数字ではなく数字で考える傾向があります。 –
誰かがすでにdone it for youです。
@Gregは上記のように(http://stackoverflow.com/questions/1323314/detecting-if-a-given-number- is-an-integer#comment-1157013)、これはparseIntにradixパラメータを含める必要があります。 – bdukes
これは動作します:
if (Math.floor(x) == x)
これは、xが 'false'の場合に働く利点があります。 –
あなたが整数の正式な定義を使用できます[?変数はJavascriptの整数であるかどうかを確認する方法]の
Math.floor(x) === x
が重複する可能性を(のhttp:/ /スタックオーバーフロー。com/questions/14636536/how-to-check-if-a-variable-is-an-as-as-javascript) –