看板 C_and_CPP 關於我們 聯絡資訊
#include <cstdio> int main() { float num; scanf("%f",&num); printf("%f",num); system("pause"); return 0; } 譬如我輸入23.3,為什麼螢幕顯示的是23.299999? 該怎麼修正程式碼?謝謝解答囉。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.109.103.153 ※ 編輯: eagle32 來自: 140.109.103.153 (12/17 15:16)
singlovesong:printf("%.1f ",num); 12/17 15:43
eagle32:如果事先不知input的數字的精確度 你的方法就行不通了 12/17 16:04
LPH66:置底十三誡之十一的那個連結先去整篇看過 12/17 16:35
LPH66:另外其實這種讀法永遠不會知道使用者輸入的精確度是多少 12/17 16:36
ericinttu:先看點程式設計的書吧 12/17 16:47
eagle32:請問樓上的意思是...?要看那些書呢? 12/17 16:51
LawlietDo:不考慮存成string? 12/17 16:59
eagle32:不是不考慮是太嫩沒想到還有什麼靈活的作法 = = 12/17 17:01
ericinttu:"數字的精度變了" 所以你是用數字的觀點看它 12/17 17:04
tjjh89017:應該是10進位和2進位制的誤差吧 12/17 17:20
zorro500021:這個是浮點數誤差,google一下就能瞭解吧。 12/18 16:54