countersince January 6, 2001X68000 LIBRARYEnglish
更新日: 2023 年 10 月 26 日
X68000 LIBRARY > 資料室 > FE ファンクションコールリファレンス > G > __GCVT

__GCVT

FE ファンクションコール名

__GCVT

FE ファンクションコール番号

$FE26

機能

64bit 浮動小数点数を全体の桁数を指定して文字列に変換する

入力

d0d1.d:64bit 浮動小数点数

d2.b: 全体の桁数

a0.l: 文字列バッファの先頭

出力

a0.l: 末尾の "\0" の位置

解説

メモ

指定された桁数で表現できないときは指数表現になる

print gcvt(1e-1,10)
0.1
print gcvt(1e-8,10)
0.00000001
print gcvt(1.5e-8,10)
1.5E-008
print gcvt(1e-9,10)
1.E-009                 小数点はあるが小数部がない
print gcvt(2e-1/3#,10)
6.666666667E-002
print gcvt(2e+0/3#,10)
0.6666666667
print gcvt(2e+1/3#,10)
6.666666667
print gcvt(2e+9/3#,10)
666666666.7
print gcvt(2e+10/3#,10)
6666666667
print gcvt(2e+11/3#,10)
6.666666667E+010
print gcvt(0#,4)
0.
print gcvt(val("#INF"),4)
#INF
print gcvt(val("#INF"),3)
$.E+003
print gcvt(val("#INF"),2)
$.E+003
print gcvt(val("#INF"),1)
$.E+003

FLOAT2.X の GCVT は小数部がなくても桁数の範囲内であれば小数点を書く

桁数ちょうどのときは小数点も指数部も付かないので、整数でないことを明確にするために小数点を書いているとも言い難い

ここでは #NAN と #INF 以外は小数部がなくても小数点を書くことにする

バグ

FLOAT2.X 2.02/2.03 は #NAN と #INF にも小数点を付ける

FLOAT2.X 2.02/2.03 は #NAN と #INF のとき桁数が足りないと指数形式にしようとして文字列が壊れる

FLOAT4.X 1.02 は #NAN と #INF にも小数点を付ける

FLOAT4.X 1.02 は桁数の少ない整数には小数点を付けて桁数ちょうどの整数には小数点も指数部も付けない