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

__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 桁になる