- 13 名前:名前は開発中のものです。 mailto:sage [2010/09/23(木) 18:08:04 ID:7XCQvY35.net]
- Irrlicht1.7.1を使っていて
なぜか桁の大きいdouble型変数の演算時に小数部が切り捨てられていたので、原因を探ってみたところ どうやら irr::createDeviceの第一引数のレンダリング環境を設定するところでDirectX(EDT_DIRECT3D8及びEDT_DIRECT3D9)を指定するとこの現象が起きるようでした。 createDeviceを使用しなかったり、DirectX以外のOpenGLやソフトウェアレンダラを指定するとこの現象は起きませんでした。 原因や解決法を教えていただきたいです。。 C++自体初心者なので全く関係の無いところで勘違いしてるのかもしれませんが… なお以下のコードで現象を確認しました(test03が10000000.5になって欲しいのに10000000.0になる) #include <irrlicht.h> #include <windows.h> #pragma comment(lib, "Irrlicht.lib") using namespace irr; using namespace core; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { IrrlichtDevice *device =createDevice(video::EDT_DIRECT3D9, dimension2d<u32>(640, 480), 16, false, false, false, 0); double test01=10000000; double test02 = 0.5; double test03=test01+test02; device->drop(); return 0; }
|

|