数値の制限
ロボット およびベーシック エンジン ロボット
の数値形式は異なります。ベーシック エンジン ロボットでは、変数に格納される値は倍精度です (IEEE 754 規格で規定された binary64)。ロボットでは、変数は IEEE 754R decimal128 形式で数値を格納し、34 桁の 10 進数と −2147483647 ~ +2147483648 (= 2^31) の指数範囲が使用されます。ロボットに値を保存する場合は、精度の制限により丸めが行われます。有効桁数が 34 桁を超える数値は、この制約内に収まるように調整され、最後の桁は最も近い値に丸められます。たとえば、1234567890123456789012345678901234567890.0 は、最大 34 桁の有効な数字を維持するため、1234567890123456789012345678901235000000 になります。
利用できる数値は以下のとおりです:最大 9.9999999999…E2147483647 から最小 0.1E-2147483646 までの数値これらの数値は、エクスプレッションに “0.1E-2147483646”.number() を書き込むなどして、テキストから数値に変換できる最大値と最小値です。乗算を使ってより大きな数値を得ることもできますが、オーバーフロー エラーが発生する可能性があります。数値の表記には以下のような制約があります:
“9.9999999999…9E2147483647”.number() は、数値が 34 桁以上ある場合 1.0E2147483648 に変換され、34 桁未満の場合は 9.9999999999…9E2147483647 に変換されます。
“0.1E-2147483646”.number() は、1.0E-2147483647 に変換されます。