E3DInit 0, -1, 0, 16, 0, scid1の命令のあとにa=84.3000dialog -aこのように、小数にマイナスをかけるとdialogで表示される数値が84.300003などになるのですが原因はなにでしょうか?E3DInitの手前で計算しておくと数字がおかしくなることはないようです。
HSPのデフォルトの状態では小数はdoubleです。E3DInitを呼ぶと小数がfloatになります。floatは確か有効数字が7桁くらいだったと思います。メタセコイアとやり取りする場合はもう一個気をつけなくてはいけません。mqoファイルをテキストエディタで開くと分かりますがmqoに書かれている数値はfloatよりも更に桁数が少ないです。なので普通にやるとプラグイン中の数値とmqoにしてから読み込む数値に違いが出る可能性があります。
hspでfloat型が使えるのですか?意図した計算ができないので少し困り物ですね。>プラグイン中の数値とmqoにしてから読み込む数値に違いが出る可能性があります。そこで今苦戦中です、数字を四捨五入してたら処理速度が落ちたりorz
> hspでfloat型が使えるのですか?> 意図した計算ができないので少し困り物ですね。小数の計算精度を指定するC言語の命令があるのです。DirectXは処理速度を優先するために通常は精度をfloatにします。HSP上では小数データは8バイトになりますが上記の関係で精度はfloatになります。
>小数の計算精度を指定するC言語の命令があるのです。>DirectXは処理速度を優先するために通常は精度をfloatにします。C言語の命令以降ずっとfloatになるということですか?hspの計算にも影響するみたいですね。数字をぴったりに合わせるのはあきらめて、誤差も含めて計算させることにしてみたらやりたいことが上手くいきました。ttp://oirahakobito.seesaa.net/article/231483437.html?1319184027
> >小数の計算精度を指定するC言語の命令があるのです。> >DirectXは処理速度を優先するために通常は精度をfloatにします。> C言語の命令以降ずっとfloatになるということですか?> hspの計算にも影響するみたいですね。ずっとなります。HSPにも影響します。> ttp://oirahakobito.seesaa.net/article/231483437.html?1319184027出来ましたか!今度、支援ツールの紹介ページに載せますね。