gnuplot の複素数変数値、実数変数値は、ほとんどの使用環境で IEEE754 の binary64 (double) 浮動小数形式で保存します。その精度は、53 ビットに制 限され、有効数字はおよそ 16 桁です。
よって、絶対値が 2^
53 よりも大きい整数は、浮動小数変数で一意に表現する
ことはできません。つまり、大きな N に対する int(real(N)) という操作は
N に近いけれども N とは異なる整数を返す可能性があります。
さらに、浮動小数値を切り捨てにより整数値に変換する関数は、その値自身が 小さくても、16 桁以上の精度に依存する操作では期待する値を得られない可 能性があります。例えば、int(log10(0.1)) は、-1 でなく 0 を返しますが、 それはその浮動小数表現が -0.999999999999999... に等しいからです。 以下も参照: overflow (110.66)。
int(x) は、引数の 0 の方向に切り捨てた整数部分を返します。
|x| > 2^
63、すなわち整数値として大きすぎる場合は NaN を返します。
|x| > 2^
52 の場合は、返り値はある整数の近傍におさまりますが、浮動小数
精度の制限のためにそれらを区別できません。
以下参照: integer conversion (15.3.1)。
floor(x) は、x の実数部分以下の最大の整数を返します。
|x| > 2^
52 の場合、その値は一意に決定できませんので、その場合は NaN を
返します。以下参照: integer conversion (15.3.1)。
ceil(x) は、x の実数部分以上の最小の整数を返します。
|x| > 2^
52 の場合、その値は一意に決定できませんので、その場合は NaN を
返します。以下参照: integer conversion (15.3.1)。
round(x) は、x の実数部分に一番近い整数を返します。
|x| > 2^
52 の場合、その値は一意に決定できませんので、その場合は NaN を
返します。以下参照: integer conversion (15.3.1)。
竹野茂治@新潟工科大学