文字列を数値に変換します。戻り値の型はDouble(倍精度浮動小数点値)。Doubleの範囲外の数値だとINFもしくは-INFが返ります。INFとはINFinity(無限大、∞)のことです。
- 構文
- Double = VAL( 文字列, エラー値 )
- 引数
- 文字列 (String)必須
- 数値に変える文字列
- エラー値 (Integer = ERR_VALUE)省略可
- 数値に変換できない場合に返す値
- 戻り値
- 数値
数値変換できない場合はエラー値を、デフォルトではERR_VALUE(-999999)を返す
使い方
文字列形式の123を数値に変換します。
- 結果
数値を指定した場合、そのままの値を返します。
- 結果
カンマ区切りの値はカンマが外されます。桁区切りの位置が正しくなくてもエラーは発生しません。
- 結果
全角の値は半角の数値に変換されます。
- 結果
先頭や小数点以下末尾のゼロ埋めは外されます。
- 結果
漢数字はエラーを返します。
- 結果
1,000,000,000,000,000(1E15)以上の値、または0.0001(1E-4)未満の値であれば指数表記、そうでなければ数値で返します。指数表記の場合、仮数部は「\(1<=仮数部<10\)」の範囲になります。
- 結果
VAL関数では分数の計算はされません。分数を計算するにはEVAL関数を使います。
- 結果
数値でない場合はERR_VALUEを返すので、数値に変換できるか否かで条件分岐することができます。
- 結果
文字列か数値か判定
文字列か数値を判定するには+(演算子)もしくはVARTYPE関数 (スクリプト関数)を使います。
+は、演算子の両側が数値の場合は算術演算子、そうでない場合は連結演算子として機能します。つまり加算されるか結合されるかで数値かどうかを判断することができます。
aは文字列なので結合されて1234が返り、bは数値なので加算されて127が返ります。
- 結果
VARTYPE関数 (スクリプト関数)は引数の値が文字列であれば258、数値ならば5を返します。
- 結果
VAL関数を使うと文字列・数値に関係なく、計算に使える数値として扱えるようになります。外部ファイルから読み込んだ文字列を計算に使う場合などに役立ちます。
- 結果
数値から文字列に変換
VAL関数とは反対に数値から文字列に変換する場合は、VARTYPE関数 (スクリプト関数)で文字列型に変換するか空文字と結合させることで型変換を行います。
指数表記
UWSCでは非常に大きい値や小さい値を指数表記(Exponential Notation)で表すことができます。
1,000,000,000,000,000(1E15)以上の値、または0.0001(1E-4)未満の値は指数表記で表されます。
\[(仮数部)E(指数部)\] \[(仮数部)E(指数部) = (仮数部) \times 10 ^{(指数部)}\]
\[1.0E+n = 1.0 \times 10^{n}\] \[1.0E-n = 1.0 \times 10^{-n} = 1.0 \times \frac{1}{10^{n}}\]
例えばアボガドロ定数はEを使った指数表記では以下のようになります。
\[6.02214076 \times 10^{23} = 6.02214076E+23\]
指数がプラスの場合E+の+は省略可能です。
\[6.02214076E+23 = 6.02214076E23\]
電子量は以下のようになります。
\[1.602176634 \times 10^{-19} = 1.602176634E-19\]
UWSCではこのように指数表記で表された値もVAL関数の引数に文字列型で指定することで、計算に使える数値にすることができます。
例えば、光が5秒間に進む距離の計算は以下のようになります。
- 結果
プログラム実行例
指数表記の値を数値表記にする
指数表記で書かれた値を数値に直します。
\[1.25\rm{E}+6=1.25 \times 10^{6}\]
指数表記の値の計算
\(1^{15}\)以上の値は指数表記になります。
オフライン作業取得
今年何パーセント終わった?
現在時刻時点で今年の何%が終わったのかをリアルタイムで確認できます。現在時刻、経過割合、残り日数を吹き出しに表示します。更新間隔は1秒です。
MSGBOXの種別の数値から表示されるボタンを取得
文字列から数字部分のみ抽出
strに指定された文字列から数字の部分のみ抽出します。
