[問題] 請問浮點數輸出問題

看板C_and_CPP作者 (別急著吃棉花糖)時間13年前 (2012/05/31 18:03), 編輯推噓3(307)
留言10則, 7人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) dev-c++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): float f=788.9888; printf("%f",f); 想請教各位前輩,為什麼印出來會是788.988770 小數點有效位數是6位,請問後面的770是怎麼出來的呢? printf("%12f",f); 這邊會輸出「空白 空白788.988770」 好像和上面是一樣的問題,不知道770是怎麼出來的~ 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): 以上謝謝各位前輩的指點 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.244.132.83

05/31 18:05, , 1F
十三誡B11
05/31 18:05, 1F

05/31 18:52, , 2F
printf("%s","788.988"); 這樣就不會不同了
05/31 18:52, 2F

05/31 18:58, , 3F
樓上 XDD
05/31 18:58, 3F

05/31 19:42, , 4F
只是想知道浮點數有什麼規則可循嗎?如果今天換個78.123
05/31 19:42, 4F

05/31 19:42, , 5F
是否會有固定的答案?
05/31 19:42, 5F

05/31 20:09, , 6F
置底十三誡B(11)
05/31 20:09, 6F

05/31 20:12, , 7F
宣告的時候就會有warning了吧
05/31 20:12, 7F

05/31 20:16, , 8F
去Google查一下 IEEE 754 是什麼吧
05/31 20:16, 8F

05/31 20:48, , 9F
2樓意義深遠原po要好好想一下為什麼啊
05/31 20:48, 9F

05/31 20:50, , 10F
8 byte的字串(含\0)都可以存double了呢~
05/31 20:50, 10F
文章代碼(AID): #1Fnq7yjE (C_and_CPP)