% Function RATIONAL, RATIONALIZE
Function RATIONAL
, RATIONALIZE
rational
number => rational
rationalize
number => rational
number - 実数
rational - 実数
rational
とrationalize
は、
実数を有理数に変換します。
もしnumberがすでに有理数のときは、その値が返却されます。
もしnumberが浮動小数のときは、
rational
は
数学的に同一な浮動小数の値を返却します。
rationalize
は
その浮動小数による浮動小数の表現を元とした精度を用いて近似した
有理数が返却されます。
rational
は
その浮動小数が完全に正確であることを仮定します。
rationalize
は
その浮動小数による浮動小数表現の精度のみを元に正確であることを仮定します。
(rational 0) => 0
(rationalize -11/100) => -11/100
(rational .1) => 13421773/134217728 ;implementation-dependent
(rationalize .1) => 1/10
なし。
実装
numberが実数ではないとき、型type-error
のエラーを通知するべきです。
型arithmetic-error
を通知するかもしれません。
なし。
下記のような場合は常に成り立ちます。
(float (rational x) x) == x
下記も同様です。
(float (rationalize x) x) == x
これは、どちらの方法を用いた浮動小数から有理数への変換でも、 浮動小数の同じフォーマットへ戻す変換は 元のnumberを生成するということです。