[問題] 請問string轉double精度問題

看板C_and_CPP (C/C++)作者 (月)時間12年前 (2014/03/24 23:16), 編輯推噓5(502)
留言7則, 6人參與, 最新討論串1/1
開發平台(Platform): VC++ 額外使用到的函數庫 : 無 問題(Question):請問string 轉成double 時的精度問題 預期的正確結果(Expected Output):dResult = 9.7 錯誤結果(Wrong Output):dResult = 9.69999993 程式碼(Code): CStringW str = L"9.7"; double dResult = _wtof(str); 補充說明(Supplement):其實只是很想很簡單的把9.7這個string變成double 9.7(要剛剛好,不能多或少),不過結果都是差一點(或多一點),希望有高手指點!謝謝~~ -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.161.126.64

03/24 23:30, , 1F
9.7 存二進位本來就有捨位誤差, 所以你要的達不到
03/24 23:30, 1F

03/25 00:45, , 2F
fixed point
03/25 00:45, 2F

03/25 01:09, , 3F
03/25 01:09, 3F

03/25 06:50, , 4F
有 library 有 有理數的
03/25 06:50, 4F

03/25 10:51, , 5F
你可以自己寫一個轉換函式 :)
03/25 10:51, 5F

03/25 12:43, , 6F
這 9.69999993 的數值似乎只有 float 的精度而非 double ??
03/25 12:43, 6F

03/25 13:03, , 7F
你的 precision 必須設定正確,自己寫一個真的比較快
03/25 13:03, 7F
文章代碼(AID): #1JC4nYJt (C_and_CPP)
文章代碼(AID): #1JC4nYJt (C_and_CPP)