我有一個客戶端程序通過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 /內容/爲什麼 - 你的鏈接 - 宜 - 永不言點擊這裏/)。 –