[問題] 字串轉數字(大於八個數字)

看板C_and_CPP (C/C++)作者 (往五六他爸)時間13年前 (2012/11/18 20:46), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
開發平台(Platform): C++ (Ex: VC++, GCC, Linux, ...) 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 我最近研究將字串轉換成數字 有一個數字是3.4000001 可是我用atof跟atol 讀 然後用printf 輸出 但是我用%f 或是%Lf 輸出的都是3.400000 我不知道要怎麼樣才能讓我的檔案正確的讀到3.4000001 餵入的資料(Input):3.4000001 預期的正確結果(Expected Output):3.4000001 錯誤結果(Wrong Output):3.400000 程式碼(Code): char a[30]; long double G; scanf("3.4000001",a); G=atol(a); printf("%Lf",G); (請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.102.43 ※ 編輯: won56 來自: 140.116.102.43 (11/18 20:48) ※ 編輯: won56 來自: 140.116.102.43 (11/18 20:49)

11/18 20:58, , 1F
我發現原來 %f %Lf 預設輸出六位 改成 %10Lf 就成功了
11/18 20:58, 1F

11/19 09:52, , 2F
11/19 09:52, 2F
文章代碼(AID): #1GgDYgpC (C_and_CPP)
文章代碼(AID): #1GgDYgpC (C_and_CPP)