4

singleC++ に相当するものはfloatExcel ワークブック モジュールの 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そうでなければ、そのままでは正しくないと思います。

4

1 に答える 1