サーバーにデータを送信するtcp接続によるクライアントプログラムがあります。クライアントでは、正規化のために正規化された10進数をサーバーに送信する必要があります。10進数を100,000に乗算してからサーバーに送信しますが、サーバーで間違った数値を取得します。例えば。
double price;
GUIから74.40に設定しました
cout<<price; ---> 74.40
オブジェクトをシリアル化すると、送信します
#define Normal 100000
int tmp = price*Normal;
oDest<<tmp;
wirehrkでは、クライアントが7439999を送信したことがわかります。
なぜこれが起こったのですか?どうすればこの問題を回避できますか?