[MKD$] 関数
倍精度実数の数値データをその内部表現に対応した文字列に変換します。
[CVD] の逆。
文法 MKD$(<倍精度実数値)
文例 T$ = MKD$(2003.0327)
LSET L$=MKD$(2.7182818284)
<倍精度実数値>の内部表現に対応する8バイトの文字列に変換して返します。
この関数は、数値データをランダムファイルに書き出す際に、
数値データはそのままの形ででは書き出せないために、
これを文字型のデータに変換するものです。
ランダムファイルのフィールド変数に対して LSET/RSET によりセットします。
読み出しの際には、[CVD] を用いてもとの数値データに戻します。
N88BASICとMBASIC86では内部形式が違います。[NEC98_FILEデータ]参照。
[注意]この変換は[STR$] 関数 とは全く違うものです。
[MKI$] 、[MKS$] 、[STR$] 参照。
[LSET] 、[RSET] 参照。
サンプル1
10 CLS
20 RKEY%=11
30 OPEN "RDATA" AS #1
40 FIELD #1, 2 AS A$, 4 AS B$, 8 AS C$
50 I%=7531:S!=123.456:D#=3.141592653
60 LSET A$= MKI$(I%)
70 LSET B$=MKS$(S!)
80 LSET C$=MKD$(D#)
100 PUT #1, RKEY%
110 CLOSE
900 END
サンプル2
10 CLS
20 RKEY%=11
30 OPEN "RDATA" AS #1
40 FIELD #1, 2 AS A$, 4 AS B$, 8 AS C$
100 GET #1, RKEY%
60 I%=CVI( A$)
70 S!=CVS( B$)
80 D#=CVD( C$)
90 PRINT I%; S!; D#
110 CLOSE
900 END
この場合、
サンプル1で 整数 I%, 単精度 S!, 倍精度 D# の
各数値データを内部対応の文字列データに変換して、
ファイルに書き出しています。
サンプル2でファイルから2バイト、4バイト、8バイトの
文字列データを読み出して、I%, S!, D# に値をセットしています。
7531 123.456 3.141592653 と表示します。