Double : Number Integer64 : Number IntegerPtr : Number
3ds Max 9 の MAXScript で、3 個の新しい 数値 クラス Double、Integer64、および IntegerPtr が追加されました。
.NET Common Type System (CTS) においてもっとも桁数の多い浮動小数点(float)値は System::Double です。これは C++ の倍精度(double)の値(real*8)に該当します。MAXScript における Double の値のクラスは、倍精度の値のクラスをラップします。
MAXScript において Float 値で動作するすべての標準的な算術メソッドおよび演算子 (sin、cos、random、+、-、など)は、Double クラスでも実装できます。
Double クラスは、Float クラスとほぼ同様に「ビット」構文メソッドをサポートします。
Double クラスは MAXScript の保存可能なクラスです。つまり、Double クラスは永続的なグローバル変数の中で使用できます。
ActiveX、OLE、および fileProperties.getPropertyValue/ setPropertyValue 用のデータ タイプ コンバータを使用すると、バリアント VT_R8 を Doubleに、および Double を VT_R8 に変換できます。
引数として Float を期待するメソッドについては、Double の値が Float の値に変換され、使用されます。
Double のリテラルを表記する場合には、指数修飾子「d」を付加します。
例: |
1.0d0 --returns 1.0d0 0.5 as Double --returns0.5d0 2.0d5--returns 2000000.0d0 1.2d-3 --returns 0.0012d0 |
整数(Integer)で使用できる「ビット」構文メソッドは、Integer64 および IntegerPtr でも使用できます。2 個の引数を受け取るメソッドでは、最初の引数が出力値の型を決定します。
bit.intAsHex は、Integer64 が入力された場合には出力文字列に「L」を付加し、IntegerPtr が入力された場合には「P」を付加して出力します。
bit.hexAsInt は、入力文字列に「L」が含まれている場合は Integer64 を、「P」が含まれている場合は IntegerPtr を出力します。
String 値と Stringstream 値は、Double、Integer64、および IntegerPtr に強制的に変換できます。
すべての数値データ タイプ(Integer、Float、Integer64、IntegerPtr、Double)および Time は、相互に強制的に変換できます。
for ループの変数は、to 値、from 値、およびステップ値の中でもっとも桁数の多い値のタイプに基づいて、Integer、Float、Integer64、IntegerPtr、Double のいずれかになります。
非常に小さな Double 値の表示が 3ds Max 2011 以降で改善されています。
Float 値が出力されるときにその値が 1.192092896e-07(1.0+f ! = 1.0である、最小の浮動小数点 f)より小さい場合、Float は 0.0 として出力されます。
Double 値が出力されるときにその値が 2.2204460492503131e-016(1.0+d ! = 1.0である、最小の double d)より小さい場合、Double は 0.0 として出力されます。3ds Max 2011 より前のバージョンでは、1.192092896e-07 の 浮動小数点値は Double にも使用されています。
関連するメソッド:
is64bitApplication()
3ds Max 9 以降では、3ds Max の64 ビット版が実行されている場合に true を返し、そうでない場合は false を返します。