更新日: 2023 年 10 月 26 日
__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 は桁数の少ない整数には小数点を付けて桁数ちょうどの整数には小数点も指数部も付けない