[問題] 如何處理無窮小數的輸出已達到現實中的值?

看板C_and_CPP (C/C++)作者 (Y.C.K)時間16年前 (2009/12/09 22:44), 編輯推噓2(2014)
留言16則, 4人參與, 最新討論串1/1
假設今天我存入一個浮點數到double 被存入的數: 123.7 (隨便舉例..我也不知道123.7存進去之後是否會變成無窮) double中所存的數為 123.6333333........ 我在輸出的時候要如何能夠使輸出維123.7呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.233.40.239

12/09 22:44, , 1F
123.7 跟 123.6333333 都是我自己隨便舉的,看看就好@@
12/09 22:44, 1F

12/09 23:05, , 2F
理論上, 照IEEE 754標準的float與double, 都存不成無窮
12/09 23:05, 2F

12/09 23:06, , 3F
小數, 因為mentissa有限, base為2, 所以無論如何都存不
12/09 23:06, 3F

12/09 23:14, , 4F
成無窮小數的....@_@"
12/09 23:14, 4F

12/09 23:14, , 5F
另外, 存入浮點型態時已經失準的數, 沒有方法可以再取回
12/09 23:14, 5F

12/09 23:15, , 6F
原值, 你可以想, 32bit/64bit最多才幾種變化, 不可能能
12/09 23:15, 6F

12/09 23:15, , 7F
儲存所有實數的. 如果你的資料是有理數, 也許你可以考慮
12/09 23:15, 7F

12/09 23:16, , 8F
使用/設計一個分數型態; 不然, 不計算, 純儲存與顯示的
12/09 23:16, 8F

12/09 23:16, , 9F
話, 就用string直接存成文字吧...XD
12/09 23:16, 9F

12/09 23:35, , 10F
板大要不要考慮將洗老師的那篇置底或加入十戒之類的
12/09 23:35, 10F

12/09 23:36, , 11F
        冼
12/09 23:36, 11F

12/09 23:37, , 12F

12/09 23:55, , 13F
我先加入精華區 z-8-1
12/09 23:55, 13F

12/10 00:45, , 14F
11 XD
12/10 00:45, 14F

12/10 00:52, , 15F
囧,謝謝 XD 灌機器灌到瘋了~
12/10 00:52, 15F

12/10 01:30, , 16F
原來如此,看了那篇文章之後明白了許多. 謝謝各位^^
12/10 01:30, 16F
文章代碼(AID): #1B7xUtOL (C_and_CPP)
文章代碼(AID): #1B7xUtOL (C_and_CPP)