Foundation > Rogue Wave Script 言語リファレンス > 数値
 
数値
本セクションは、次のような構成になっています。
*数値リテラル構文
*特殊数値
*数値への自動変換
*数値メソッド
*数値関数
*数値定数
*数値演算子
数値リテラル構文
数値は、10 進数 (底 10)、16 進数 (底 16)、または 8 進数 (底 8) で表すことができます。
メモ:  C++ プログラマーの方へ:数値は、C および C++ の整数および倍精度と同じ構文を持ちます。 それらの数値は、64 ビット倍精度浮動小数点数として表されます。
小数は、一連の数字の後に任意の端数、任意の指数と続きます。 端数は、小数点 (.) の後に一連の数字が続きます。指数は、e または E の後に、任意の + または - 符号と一連の数字が続きます。 小数には 1 桁以上が必要です。
以下に、小数リテラルの例をいくつか示します。
15
3.14
4e100
.25
5.25e-10
16 進数は、0x または 0X プレフィックスの後に数字 (0-9) および文字 a-f または A-F を含む一連の 16 進数字が続きます。 例:
0x3ff
0x0
8 進数は、0 の後に、数字 0-7 を含む一連の 8 進数字が続きます。 例:
0123
0777
特殊数値
特殊数値には、NaN (非数)、Infinity (正の無限) および ‑Infinity (負の無限) の 3 つがあります。
特殊数値 NaN は、数値操作におけるエラーを表すのに使います。 たとえば、負数に適用された平方根関数 Math.sqrt は NaN を返します。 数値リテラルとしての NaN の表現はありませんが、グローバル変数 NaN にその値が含まれます。
NaN 値は伝染するため、NaN を伴う数値操作は常に NaN を返します。 NaN を伴う比較操作は、NaN == NaN 比較の場合でも常に false を返します。
例:
Math.sqrt(-1) -> NaN
Math.sqrt(NaN) -> NaN
NaN + 3 -> NaN
NaN == NaN -> false
NaN <= 3 -> false
NaN >= 3 -> false
特殊数字 Infinity および ?Infinity は、算術演算で無限値とオーバーフローを示すのに使われます。 グローバル変数 Infinity には正の無限が含まれます。 負の無限は、負の演算子 (‑Infinity) を使って計算することができます。
例:
1/0 -> Infinity
-1/0 -> -Infinity
1/Infinity -> 0
Infinity == Infinity -> true
数値への自動変換
引数の 1 つに数値を予測する関数またはメソッドに非数値が渡された場合、その関数またはメソッドでは、次のルールを使ってその値を数値に変換します。
*string は数値リテラルとして解析されます。 文字列が有効な数値リテラルを表していないときは、変換によって NaN が返されます。
*boolean true は、数値 1 を返します。
*boolean false は、数値 0 を返します。
*null 値は、数値 0 を提供します。
*date は、1970 年 1 月 1 日 00:00:00 UTC (世界協定時刻) 以降の対応する数値を、ミリ秒単位で返します。
たとえば、Math.sqrt 関数に文字列が渡された場合、この文字列はそれを表す数値に変換されます。
Math.sqrt("25") −> 5
同様に、数値オペランドを取る演算子は、すべての非数オペランドを数値に変換しようとします。
"3" * "4" −> 12
+ などの文字列と数値の両方を取ることができる演算子では、数値の変換よりも文字列への変換の方が優先されます (文字列への自動変換参照)。 したがって、1 つ以上のオペランドが文字列の場合、他のオペランドは文字列に変換されます。また、オペランドに文字列がない場合、そのオペランドは両方数値に変換されます。 例:
"3" + true −> "3true"
3 + true −> 4
==>= などの比較演算子では、文字列への変換よりも数値への変換の方が優先されます。 したがって、1 つ以上のオペランドが数値の場合、他のオペランドは数値に変換されます。 両方のオペランドが文字列の場合は、文字列に対して比較が行われます。 例:
"10" > "2" -> false
"10" > 2 -> true
数値メソッド
次に示すのは、唯一の数値メソッドです。
Rogue Wave Script 数値メソッド
構文
効果
number.toString( )
数値をリテラルとして表す文字列を返します。
例:
  (14.3e2).toString() −> "1430"
数値関数
以下の数値関数が定義されています。
メモ: C/C++ プログラマーの方へ: これらの関数のほとんどは、標準ライブラリー関数をまとめたものです。
Rogue Wave Script 数値関数 
構文
効果
Math.abs(x)
x の絶対値を返します。
Math.max(x, y)
Math.min(x, y)
Math.max(x, y)x および y の大きい方の値を返し、Math.min(x, y) は両者のうちで小さい方を返します。
Math.random( )
0、包含的、および 1、排他的の中から擬似ランダム数値を返します。
Math.ceil(x)
Math.floor(x)
Math.round(
x)
Math.ceil(x) は、x に等しいかまたはそれよりも大きい最小整数値を返します。 Math.floor(x) は、x に等しいかまたはそれよりも小さい最大整数値を返します。 Math.round(x) は、x の値に最も近い整数値を返します。
Math.sqrt(x)
x の平方根を返します。
Math.sin(x)
Math.cos(
x)
Math.tan(
x)
Math.asin(
x)
Math.acos(
x)
Math.atan(
x)
Math.atan2(y,
x)
Math.sin(x)Math.cos(x) および Math.tan(x) は、ラジアン引数の三角関数を返します。
Math.asin(x) は、範囲 -PI/2 ~ PI/2 の x の逆正弦関数を返します。
Math.acos(x) は、範囲 0 ~ PI の x の逆余弦関数を返します。
Math.atan(x) は、範囲 -PI/2 ~ PI/2 の x の逆正接関数を返します。
Math.atan2(yx) は、a を範囲 -PI ~ PI の逆正接関数 y/x として計算して、直角座標 (x, y) を極 (r, a) に変換します。
Math.exp(x)
Math.log(
x)
Math.pow(
x, y)
Math.exp(x) は、指数関数 ex を計算します。 Math.log(x) は、ex の自然対数を計算します。 Math.pow(x, y) は、y 乗した x を計算します。
数値定数
以下の数値定数が定義されています。
Rogue Wave Script 数値定数 
構文
NaN
NaN 値を含みます。
Infinity
Infinity 値を含みます。
Number.NaN
NaN と同じ。
Number.MAX_VALUE
表現可能な最大数は、約 1.79E+308 です。
Number.MIN_VALUE
表現可能な最小正数は、約 2.22E-308 です。
Math.E
オイラーの定数および自然対数の底は、約 2.718 です。
Math.LN10
10 の自然対数は、約 2.302 です。
Math.LN2
2 の自然対数は、約 0.693 です。
Math.LOG2E
e の底 2 の対数は、約 1.442 です。
Math.LOG10E
e の底 10 の対数は、約 0.434 です。
Math.PI
円の直径に対する円周の比率 (円周率) は、約 3.142 です。
Math.SQRT1_2
2 分の 1 の平方根は、約 0.707 です。
Math.SQRT2
2 の平方根は、約 1.414 です。
数値演算子
以下の数値演算子を使用できます。
メモ: C/C++ プログラマーの方へ: これらの演算子は、C および C++ のものと同じです。
Rogue Wave Script 数値演算子 
構文
効果
x + y

x
- y

x
* y

x
/ y
通常の算術演算
例:
  3 + 4.2 −> 7.2
  100 - 120 −> -20
  4 * 7.1 −> 28.4
  6 / 5 −> 1.2
- x
否定
例:
  - 142 −> -142
x % y
x Ä y の浮動小数点の余りを返します。
例:
  12 % 5 −> 2
  12.5 % 5 −> 2.5
x == y

x
!= y
演算子 == は、x および y が等しい場合に true を、そうでない場合に false を返します。 演算子 != は、== の逆です。
例:
  12 == 12 −> true
  12 == 12.1 −> false
  12 != 12.1 −> true
x < y

x
<= y

x
> y

x
>= y
演算子 < は、xy よりも小さい場合に true を、そうでない場合に false を返します。 演算子 <= は、xy よりも小さいか等しい場合に true を、そうでない場合に false を返します。
例:
  -1 < 0 −> true
  1 < 1 −> false
  1 <= 1 −> true
x & y

x
| y

x
^ y
ビット演算 AND、OR および XOR。 x および y は、-2**32+1 ~ 2**32-1 (-2147483647 ~ 2147483647) の整数でなければなりません。
例:
  14 & 9 −> 8 (1110 & 1001 −> 1000)
  14 | 9 −> 15 (1110 | 1001 −> 1111)
  14 ^ 9 −> 7 (1110 ^ 1001 −> 111)
~ x
ビット NOT x は、-2**32+1 to 2**32-1 (-2147483647 to 2147483647) の整数でなければなりません。
例:
  ~ 14 −> 1 (~ 1110 −> 0001)
x << y

x
>> y

x
>>> y
2 進数シフト演算。 x および y は、-2**32+1 ~ 2**32-1
(-2147483647 ~ 2147483647) の整数でなければなりません。 演算子 << は左にシフトし、>> は右にシフトします
(符号ビットは残ります)。また、>>> は、左からゼロにシフトしながら右にシフトします。
例:
  9 << 2 −> 36 (1001 << 2 −> 100100)
  9 >> 2 −> 2 (1001 >> 2 −> 10)
  -9 >> 2 −> -2 (1..11001 >> 2 −> 1..11110)
  -9 >>> 2 −> 1073741821 (1..11001 >>> 2 −> 01..11110)

Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.