Float 組込みオブジェクトこの章では組込み変数領域が初めから備えている
Float 組込みオブジェクトを定義する。
Float
オブジェクトは、スクリプトで扱われる実数を表すオブジェクトである。
Float のメンバprototypeReal.prototype
を準プロトタイプとするオブジェクト。name"Float"zeroFloat オブジェクト。
このオブジェクトの値の絶対精度は無限大である。oneFloat オブジェクト。
このオブジェクトの値の絶対精度は無限大である。Float の内部メンバ$prototypeType.prototypeFloat の関数としての呼出しFloat は関数として呼出し可能である。一つのオブジェクト
a を引数として関数として呼出されると次の処理を実行する:
Float オブジェクトならば、[[a]]
を返す。Integer
オブジェクトならば、a を Float に拡大変換し、その結果を値とする正常終了の結果を返す。Rational
オブジェクトならば、a を Float に拡大変換し、その結果を値とする正常終了の結果を返す。Float オブジェクトを r として、[[r]]
を返す。文字列が数値として解釈できない場合は、新しい ArgumentError
のインスタンスを投げる。文字列の解釈の方法は実行環境に任せる。呼出しにおける引数の個数が一つでない場合の動作は規定しない。
Float オブジェクトのプロパティFloat オブジェクトは以下のプロパティを持つ。ただし、初期の
Float.prototype やその準プロトタイプのプロパティが
スクリプトの実行によって変更された場合は、この限りではない。
absPrecFloat
オブジェクトの絶対精度を表す
Float オブジェクト (精度が有限の場合) または正の無限大を表す Infinity オブジェクト
(精度が無限大の場合) である。このプロパティの値が Float
オブジェクトならば、その精度はこの Float オブジェクトの
absolutePrecision 内部メンバの値の精度 (実行環境が扱う原始制限実数型の値の精度)
とする。relPrecFloat
オブジェクトの相対精度を表す
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 値を文字列オブジェクトに変換したものを結果として返す。
文字列への変換の方法は実行環境に任せる。