Float
組込みオブジェクトこの章では組込み変数領域が初めから備えている
Float
組込みオブジェクトを定義する。
Float
オブジェクトは、スクリプトで扱われる実数を表すオブジェクトである。
Float
のメンバprototype
Real.prototype
を準プロトタイプとするオブジェクト。name
"Float"
zero
Float
オブジェクト。
このオブジェクトの値の絶対精度は無限大である。one
Float
オブジェクト。
このオブジェクトの値の絶対精度は無限大である。Float
の内部メンバ$prototype
Type.prototype
Float
の関数としての呼出しFloat
は関数として呼出し可能である。一つのオブジェクト
a を引数として関数として呼出されると次の処理を実行する:
Float
オブジェクトならば、[[a]]
を返す。Integer
オブジェクトならば、a を Float
に拡大変換し、その結果を値とする正常終了の結果を返す。Rational
オブジェクトならば、a を Float
に拡大変換し、その結果を値とする正常終了の結果を返す。Float
オブジェクトを r として、[[r]]
を返す。文字列が数値として解釈できない場合は、新しい ArgumentError
のインスタンスを投げる。文字列の解釈の方法は実行環境に任せる。呼出しにおける引数の個数が一つでない場合の動作は規定しない。
Float
オブジェクトのプロパティFloat
オブジェクトは以下のプロパティを持つ。ただし、初期の
Float.prototype
やその準プロトタイプのプロパティが
スクリプトの実行によって変更された場合は、この限りではない。
absPrec
Float
オブジェクトの絶対精度を表す
Float
オブジェクト (精度が有限の場合) または正の無限大を表す Infinity
オブジェクト
(精度が無限大の場合) である。このプロパティの値が Float
オブジェクトならば、その精度はこの Float
オブジェクトの
absolutePrecision
内部メンバの値の精度 (実行環境が扱う原始制限実数型の値の精度)
とする。relPrec
Float
オブジェクトの相対精度を表す
Float
オブジェクト (精度が有限の場合) または正の無限大を表す Infinity
オブジェクト
(精度が無限大の場合) または NaN
オブジェクト (精度が未定義の場合) である。このプロパティの値が
Float
オブジェクトならば、その精度は実行環境が定める。Float.prototype.$get$relPrec = @{
@return (@this == 0)
? @nan
: @this.absPrec + Math.log10[Math.abs[@this]];
}
setAbsPrec
メソッドFloat
オブジェクトを @this
値として関数として呼出すと、次の動作を行う:
NumberOfArgumentsError
のインスタンスを投げる。Real
オブジェクトならば、
[[@this 値の Float
オブジェクトと同じ値を表し、絶対精度がその
Real
オブジェクトが表す値であるような Float
オブジェクト]] を返す。Infinity
オブジェクトならば、[[@this 値の Float
オブジェクトと同じ値を表し、絶対精度が無限大の Float
オブジェクト]] を返す。ArgumentError
のインスタンスを投げる。Float
オブジェクトでない場合の動作は規定しない。setRelPrec
メソッドFloat
オブジェクトを @this
値として関数として呼出すと、次の動作を行う:
NumberOfArgumentsError
のインスタンスを投げる。Float
オブジェクトが表す値が 0 ならば、新しい
UnsupportedOperationError
のインスタンスを投げる。Real
オブジェクトならば、
[[@this 値の Float
オブジェクトと同じ値を表し、相対精度がその
Real
オブジェクトが表す値であるような Float
オブジェクト]] を返す。Infinity
オブジェクトならば、[[@this 値の Float
オブジェクトと同じ値を表し、相対精度が無限大の Float
オブジェクト]] を返す。ArgumentError
のインスタンスを投げる。Float
オブジェクトでない場合の動作は規定しない。toString
メソッドFloat
オブジェクトを @this
値としてこのメソッドを呼出すと、渡された @this 値を文字列オブジェクトに変換したものを結果として返す。
文字列への変換の方法は実行環境に任せる。