聲明:我是一名新的C++程序員,但我已經閱讀了很多關於浮點數等的知識,以及某些數字如何無法正確存儲以及所有的。在我的許多Google搜索中,我一直無法找到真正專門針對此問題的任何內容。在C++中從一個double到一個字符串連接時丟失精度
好吧,所以基本上是什麼標題說 - 我有一個問題,當我連接兩個雙變量到一個字符串,他們在每個變量數的末尾下降一個小數。我在做的是讓用戶輸入兩個數字(存儲爲雙打)進行一些計算,但後來在程序中我需要兩個數字在一個字符串中,以便我可以在數組中搜索它們(我已經加載了值)。當這些數字串聯到一個字符串中時,它們會丟掉它們兩個值中的最後一個數字,這會拋出搜索結果(我做了一些調試以發現此問題)。
這裏是我的變量讀什麼後出任右它們是由用戶指定的值:
USER1 = 43.5803481
用戶2 = -116.7406331
到目前爲止這些好值,這裏是它連接後的樣子:
concat = 43.580348 -116.740633
正如你所看到的,我在每個變量的末端丟失了1。
下面是我使用來連接它們的代碼:
concat = to_string(user1) + " " + to_string(user2);
我已經聲明的變量CONCAT作爲字符串和一切。
所以我想我想知道:
(1)爲什麼這樣做?
(見編輯)
(2)我該如何解決? (有沒有更好的方法來做到這一點?等)
在此先感謝您看!
編輯:我現在明白,to_string
只有6位小數,但其他網頁上的解決方案似乎沒有解決我的問題。
可能重複的[設置爲std ::精度爲\轉換浮點值時_string](http://stackoverflow.com/questions/16605967/set-precision-of-stdto-string-when-轉換浮點值) – OldProgrammer 2015-04-05 04:28:52
謝謝,我不知道to_string()只有6位小數。現在我只需要弄清楚鏈接中的代碼實際上意味着什麼。 – Oryn 2015-04-05 04:44:05
[std :: to \ _string(double)]的精度可能重複](http://stackoverflow.com/questions/14520309/the-precision-of-stdto-stringdouble) – 2015-04-05 06:25:52