浮動小数点形式の注意点

スクリプトで実数を扱う場合は、浮動小数点形式特有の誤差に注意してください。

実数は、DirectXの座標表現と互換性のある単精度の浮動小数点数で処理されます。浮動小数点数は、2進数で表現されています。普段目にする10進数から変換した場合、2進数で表現しきれない数値が存在します。このとき、丸め誤差が発生して、もとの10進数の値とはことなった数値になります。
浮動小数点数は、指数で表現されるため、有効な桁の範囲のみ数値としての意味があります。指数が大きく異なる数値を加算すると、一方の数が有効な桁の範囲外になり意味をなさなくなります。
浮動小数点数は、こうした誤差が発生するという前提でコードを作成してください。計算順序を入れ換える、条件判断を工夫するなどの対策があります。

Vector型は、3つの実数が1組になっています。Vector型の演算は、DirectXによって処理されるため、誤差を含む数値が返ってくる場合があります。たとえば、(1.0, 0.0, 0.0)のベクトルをVectorNormalizeで計算すると、(0.999999, 0.0, 0.0)になります。