我有一个客户端程序通过tcp连接将数据发送到服务器。 在客户端,我需要发送一个标准化的十进制数服务器正常化我乘数十进制数10万,然后将其发送到服务器,但我得到了服务器错误的号码。例如, 。我怎样才能正常的一个双点数到一个int数字exacly?
double price;
我把它归到74.40
cout<<price; ---> 74.40
,当我串行我的对象我送
#define Normal 100000
int tmp = price*Normal;
oDest<<tmp;
在wireshrk我看到客户端发送7439999.
为什么这发生过?我怎么能解决这个问题?
见[这里](http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html)和[这里](http://floating-point-gui.de/) – sbi
你应该看看[这个](http://en.wikipedia.org/wiki/Floating_point#Accuracy_problems) –
@sbi,你应该看看[为什么你的链接不应该说点击这里](http:// uxmovement。 COM /内容/为什么 - 你的链接 - 宜 - 永不言点击这里/)。 –