変数

「ヘルプ補足」諸注意

システム変数「資金」

◆保証未確認動作(確認ver2.2.27)
最小値は ゼロ です。システム変数「資金」への代入や Money コマンドによってそれ以下にしようとしても ゼロ になります。
最大値は 999,999,999 です(◆仕様補足説明(確認ver2.2.27))。システム変数「資金」への代入や Money コマンドによってそれ以上にしようとしてもこの値になります。また、2,147,483,648 以上の値にしようとしたら、
(1) Money コマンドのパラメーターにこの値以上を入れた場合は、コマンドが無視され
(2) 「資金」への代入や、Money コマンドによる増加の結果この値以上になるなる場合は、エラー「イベントデータが不正です」になります。

数値の表記方法

◆保証未確認動作(確認ver2.2.25)
関連項目:
Format関数


半角数字と小数点よりなる「ふつうの」表記方法のほかに、以下が可能です。
・ 「,」を交えた表記  例) i = 1,234,567
・ 浮動小数点表記  例) i = 1.234567E6('E'は小文字'e'でも可)

 標準的な書式ではありませんが、以下のような不規則な表記も可能です。
・ i = 12,3456,7
・ i = 1234.567E3
・ i = 12345670E-1
 これら5つの例はすべて、i = 1234567 の場合と同じ数値が入ります。代入後のデータは「,」や「E3」がついた形ではなく、SRC の標準的な数値データの形式(「1234567」)で保持されます。
(もちろん、
i = "1,234,567" や、
i = "1.234567E6"
と「"」でくくって代入した場合は文字列として処理され、「,」「E3」は保持されます)

数値の冒頭に「¥」を加えた文字列も数値として認められます。この文字列を変数に代入すると、変数は「¥1234567」など「¥」がついたデータとして保持されますが、これを数値として演算した結果のデータでは「¥」が消えます。

例:
i = \1234
Confirm "$(i) $(i + 1)"
# "\1234 1235" と表示される

あまりおすすめできませんが、
・ i = 1234
のように、全角数字列を代入したデータも数値として認められます。代入されたデータは全角のまま保持されますが、数値演算をした結果のデータでは半角数字になります。

例:
i = 1234
Confirm "$(i) $(i + 1)"
# "1234 1235" と表示される
 

 IsNumeric関数も、上記のさまざまな表記を数値として判別します。

数値変数の有効範囲と精度

◆保証未確認動作(確認ver2.2.25)
数値の有効桁数は、15桁ちょうどです。これを超える桁は、四捨五入されます。(15桁というのは有効精度であって数の大きさではありません)
 例: i = 1234567890123456789 と代入すると、実際に i に入る値は、上から15桁をとって、
  1234567890123460000 になります。

ただしこれは、単純な変数表示などの場合です。実際には、計算の途中で一度でも制限に引っかかるとそこで丸められます。また、関数やコマンドでは、VBの長整数型データ(-2147483648〜2147483647の整数値)などを使っている場合もあります。この場合もその時点で丸められます。なかにはRandom関数など、VBの短精度浮動小数点型(有効桁6桁強)を参照するSRC関数もあります。

$()によって正しく表示可能な数値の絶対値の大きさの範囲は、おおむね、最大で308桁、最小で小数点以下71桁までです。

以上のことは、数値データに対してのみあてはまります。
 i = "1234567890123456789" と代入されたデータは、文字列として扱われそのまま代入されます。しかし、
 i = i + 1 など、この変数 i を数値計算すると、その時点で数値として扱われ、丸められます。

時間変数

◆保証未確認動作(確認ver2.2.25)
関連項目:
Format関数


システム変数Now で取得した変数だけでなく、これと同じ書式の変数は時間変数として取り扱うことができます。合致する書式は
 2007/7/2 3:21:6
 2007/07/02 03:21:06
のような文字列です。
この書式の変数は、時間データ処理関数(GetTime関数を除く)で処理できます。Format関数の日付/時刻書式も有効です。

 2007/7/2 のように日付だけのデータや
 3:21:6 のように時刻だけのデータも限定的には有効です。
ただし、日付だけのデータを時刻関係の関数の引数にするとゼロが返り、Format関数の時刻書式を適用すると不測の結果になります。
時刻だけのデータを日付関係の関数の引数にしたり、Format関数の日付書式を適用したりすると、1899/12/31 などの日付が返ってきます。

 

コメント