single
C++ に相当するものはfloat
Excel ワークブック モジュールの VBA にあると思います。とにかく、最初に割り当てた値 (876.34497) は、VBA にブレークポイントを設定すると、イミディエイト ウィンドウ、ウォッチ、ホバー ツールチップで 876.345 に丸められます。ただし、これSingle
を C++ DLL に渡すと、C++ はそれを元の値 876.34497 として報告します。
それで、それは実際に元の値としてメモリに保存されますか? これはデバッガの制限ですか? ここで何が起こっているのかわからない。私が渡しているものが C++ 側で得ているものかどうかをテストするのが難しくなります。
私は試した:
?CStr(test)
876.345
?CDbl(test)
876.344970703125
?CSng(test)
876.345
VBA はそれほど単純ではないため、あるレベルでは 876.34497 としてメモリに格納する必要があります。CDbl
そうでなければ、そのままでは正しくないと思います。