我正在尋找將字符串轉換爲數據丟失的float;例如,如果我使用istringstream或:: atof(x.c_str()),由於四捨五入,我猜數據丟失。C++將字符串轉換爲float/double而不丟失數據
通常這對我來說不是問題,但我使用的數據必須與其讀取的數據相同。 下面是一個數字及其轉換成的例子。
-8.000001 -> -8
-0.6257381 -> -0.625738
12.0 -> 12 (drops the .0)
如果有人可以幫助我,我會非常感激
感謝馬特
你確定你不只是以較低的精度印刷它們嗎?我建議使用一些東西來轉換其錯誤不是一個有效的結果。 – chris
一般來說,這是不可能的,因爲由於浮點/雙精度有限的位數,您總是會舍入誤差。此外,Base 10中的舍入誤差與Base 2中的不同。此外,12.0與二進制表示中的12是相同的,因此它們之間不能有差異 – bennofs
想一想您的權利Bennofs – Makka