JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで数値がfloat(浮動小数点数)か整数(integer)かを判定する方法

JavaScriptでは、変数に格納された数値が「整数(integer)」なのか「浮動小数点数(float)」なのかを判別したい場面があります。たとえば、次のような変数を考えてみましょう。

var value1 = 10;
var value2 = 10.15;

判定方法:Number() と剰余演算子(%)を組み合わせる

数値がfloatかどうかを判定するには、Number()による型チェックと剰余演算子%を組み合わせた条件式を使用します。

Number(value) === value && value % 1 !== 0;

この条件式の仕組みは以下の通りです。

  • Number(value) === value:値が実際に数値型であることを確認します。
  • value % 1 !== 0:値を1で割った余りが0でない場合、その値は整数ではなくfloatです。

コード例

以下が実際のコードです。

function checkNumberIfFloat(value) {
    return Number(value) === value && value % 1 !== 0;
}
var value1 = 10;
var value2 = 10.15;
if (checkNumberIfFloat(value1) == true)
    console.log("The value is float=" + value1);
else
    console.log("The value is not float=" + value1);
if (checkNumberIfFloat(value2) == true)
    console.log("The value is float=" + value2);
else
    console.log("The value is not float=" + value2);

上記のプログラムを実行するには、Node.js環境で次のコマンドを使用します。

node fileName.js

ここでは、ファイル名を「demo218.js」として実行します。

実行結果

出力は以下のようになります。

PS C:\Users\Amit\JavaScript-code> node demo218.js
The value is not float=10
The value is float=10.15

この結果から、整数の10は「floatではない」と判定され、小数点以下を持つ10.15は「floatである」と正しく判定されていることがわかります。

補足:Number.isInteger() を使う方法

ES6(ECMAScript 2015)以降では、Number.isInteger()メソッドを利用することで、より簡潔に判定することも可能です。

function checkNumberIfFloat(value) {
    return Number(value) === value && !Number.isInteger(value);
}

Number.isInteger(value)は、引数が整数の場合にtrueを返します。その否定(!)を取ることで、floatかどうかを判定でき、コードの意図も伝わりやすくなります。

  1. JavaScriptで入力値が数字か文字かを判定する方法【isNaN()関数の使い方】

    入力された値が数字か文字(数値以外)かを判定するには、JavaScriptのisNaN()関数を使用します。この関数は、値がNaN(Not a Number:非数)である場合にtrueを返します。この特性を利用することで、ユーザーが入力した値が数値かどうかを簡単にチェックできます。 isNaN()関数とは isNaN()は「is Not a Number」の略称です。引数として渡された値が数値として解釈できない場合にtrueを、数値として解釈できる場合はfalseを返します。これにより、「入力内容が数字かどうか」をシンプルに判定できるのが特徴です。 サンプルコード 以下のコードでは、フォームの

  2. Pythonでfloat値が整数かどうかを確認する方法

    float.is_integer()メソッドを使う Pythonでfloat値が整数(小数点以下が0の数)かどうかを確認するには、float.is_integer()メソッドを使用します。このメソッドは、対象のfloat値が整数であればTrue、そうでなければFalseを返します。 基本的な使い方 print((10.0).is_integer()) print((15.23).is_integer()) 実行結果は以下の通りです。 True False 負の値や変数での使用例 負のfloat値や、プログラム内の変数に対しても同じように使えます。 num = -7.0 print(num