もう一度数値の話に戻ります。ここでは、多様な数値リテラルと、数値の型について書きます。
J807 以前のバージョンでは、振る舞いが異なる場合があります。
型を調べる
値 (noun) の型を調べるには、datatype
という verb を使います。(datatype
は標準ライブラリで定義されています。)
datatype 123
integer
ブーリアン
数値リテラルのうち、0
と 1
は特殊な扱いになっていて、boolean 型に分類されます。
datatype 0
boolean
datatype 1
boolean
0
や 1
は この通りに (1 文字で) 表記する必要があり、00
や 01
のようなリテラルは boolean ではありません。
整数と小数
整数リテラルは、基本的には integer 型になります。integer は、64 bit 1 符号付き整数です。
datatype 2
integer
datatype _1
integer
datatype 01 NB. 1 と書くと boolean になる
integer
小数点 (.
) を含むリテラルや、integer の範囲外の整数は、IEEE 754 倍精度浮動小数点数 (floating) を表します。
datatype 1. NB. 1.0
floating
datatype _1.23
floating
datatype 12345678901234567890
floating
datatype _
floating
指数表記
e
を用いた指数表記 (scientific notation) も同様に、integer / floating になります。
datatype _1e3 NB. _1000
integer
datatype 1e_2 NB. 0.01
floating
datatype 1.e3
floating
datatype 3.456e_7
floating
datatype 1e20
floating
N 進数
b
を使うと、N 進表記のリテラルを書けます。
16bff NB. 十六進数
255
2b01101001 NB. 二進数
105
b
の前には基数を置き、後ろに数字 (0-9, a-z) を並べます。大文字の A-Z は使えません。整数だけでなく、小数も表記できます。
NB. 2 + 12(c) * 16^-1
16b2.c
2.75
型は、指数表記と同様、小数点の有無と値の範囲から決定されます。
数学定数
e や π の絡んだ定数を書くときに使える記法です。
2x_1 NB. 2 * e^-1
0.735759
_0.8p2 NB. _0.8 * π^2
_7.89568
型は、指数表記と同様、小数点の有無と値の範囲から決定されます 2。
複素数
J では、複素数を表すのに 3 種類のリテラルが使えます。複素数は、実部と虚部の 2 つの floating の組です 3。
最もよく使うのが、j
を使った表記です (i
ではないので注意)。
1.2j3.4 NB. 1.2 + 3.4i
1.2j3.4
0j_1 NB. 0 - i
0j_1
datatype 1j1
complex
複素数の型は complex です。
極形式
J には、極形式 (絶対値と偏角) で複素数を表すリテラルもあります。偏角の単位がラジアンの場合は ar
、度 (°) の場合は ad
を使います。
2ar1
1.0806j1.68294
1ad45
0.707107j0.707107
多倍長整数
J では、多倍長整数も扱うことができます。整数の後ろに x
を付けます。もちろん、小数点を含むことはできません。
1x
1
12345678901234567890x
12345678901234567890
多倍長整数の型は extended で表されます。
datatype 0x
extended
有理数 (分数)
有理数リテラルには、r
を使います。有理数は、分子と分母の 2 つの多倍長整数の組で表されます。
1r2 NB. 1/2
1r2
12r18
2r3
2r_7
_2r7
datatype 1r2
rational
有理数は rational 型です。
ベクターの型
ベクターのリテラルの場合は、ベクターを構成する数値の うち、最も精度が高い (と見なされる) 型が選択されます。
datatype 1 0 0 1
boolean
datatype 0 123
integer
datatype 0 _12 3.45
floating
datatype 0 1 __
floating
datatype 1r2 0.5 NB. 1r2 が floating に変換される
floating
数値型の精度は、低い方から順に
- boolean
- integer
- extended
- rational
- floating
- complex
と定められています 4。
[ 前 : ボックス ] [ 目次 ] [ 次 : 数学関数 ]