更新日: 2023 年 10 月 26 日
__FCVT
FE ファンクションコール名
__FCVT
FE ファンクションコール番号
$FE25
機能
64bit 浮動小数点数を小数点以下の桁数を指定して文字列に変換する
入力
d0d1.d:64bit 浮動小数点数
d2.l: 小数点以下の桁数
a0.l: 文字列バッファの先頭
出力
d0.l: 先頭から小数点の位置までのオフセット
d1.l: 符号(0=+,1=-)
解説
小数点の位置が p のとき [p] の左側に小数点がある
全体の桁数が制限されないので指数部が大きいとき整数部が収まるサイズのバッファが必要
0 または 1 以上のとき
整数部と小数点以下の指定された桁数までを小数部の 0 を省略せずに出力する
整数部と小数点以下の指定された桁数が合わせて 14 桁を超えるときは 15 桁目が四捨五入されて 15 桁目以降は 0 になる
小数点の位置は整数部の桁数に等しい
print fcvt(0#,4,i2,i3),i2,i3 0000 0 0 print fcvt(2e+12/3#,4,i2,i3),i2,i3 6666666666666700 12 0 ↑
1 未満のとき
小数点以下の桁数の範囲内を先頭の 0 を省略して出力する
小数点以下の桁数の範囲内がすべて 0 のときは "" になる
小数点の位置は指数部 +1 に等しい
print fcvt(0.01,3,i2,i3),i2,i3 0.010 10 -1 0 <~~ print fcvt(0.001,3,i2,i3),i2,i3 0.001 1 -2 0 <<~ print fcvt(0.0001,3,i2,i3),i2,i3 0.0001 -3 0 <<< print fcvt(0.00001,3,i2,i3),i2,i3 0.00001 -4 0 <<<<
#INF と #NAN
小数点以下の桁数の指定に関係なく 4 文字出力して小数点の位置 4 を返す
print fcvt(val("#INF"),2,i2,i3),i2,i3 #INF 4 0 print fcvt(val("#INF"),6,i2,i3),i2,i3 #INF 4 0
バグ
FLOAT4.X 1.02 は結果が整数部が大きいとき 255 文字で打ち切られる
FLOAT4.X 1.02 は FCVT(± 0)の整数部が 0 桁ではなく 1 桁になる