作者stator (別急著吃棉花糖)
看板C_and_CPP
標題[問題] 請問浮點數輸出問題
時間Thu May 31 18:03:37 2012
開發平台(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
推 Arton0306:十三誡B11 05/31 18:05
推 loveme00835:printf("%s","788.988"); 這樣就不會不同了 05/31 18:52
→ purincess:樓上 XDD 05/31 18:58
→ stator:只是想知道浮點數有什麼規則可循嗎?如果今天換個78.123 05/31 19:42
→ stator:是否會有固定的答案? 05/31 19:42
→ purincess:置底十三誡B(11) 05/31 20:09
→ leiyan:宣告的時候就會有warning了吧 05/31 20:12
→ james732:去Google查一下 IEEE 754 是什麼吧 05/31 20:16
推 cobrasgo:2樓意義深遠原po要好好想一下為什麼啊 05/31 20:48
→ purincess:8 byte的字串(含\0)都可以存double了呢~ 05/31 20:50