»
遊客:
加入
|
登入
(帳號有問題請連絡TWed2k@gmail.com)
TWed2k
»
程式開發討論區
» [問題]關於c的浮點數
可打印版本
|
推薦給朋友
|
訂閱主題
|
收藏主題
|
純文字版
論壇跳轉 ...
主題:
[C&C++]
[問題]關於c的浮點數
字型大小:
小
|
中
|
大
|
巨
←
→
XYZ007
銀驢友〔高級〕
今日心情
. 積分:
1065
. 文章:
9458
. 收花: 6399 支
. 送花: 705 支
. 比例: 0.11
. 在線: 2024 小時
. 瀏覽: 48470 頁
. 註冊:
7237
天
. 失蹤:
562
天
. Taiwan
#1 : 2011-2-16 07:08 PM
全部回覆
送花
(3)
送出中...
我看的書(C Primer Plus 5/e)中提到:
在標準的c語言中,float至少可表示六個有效數字(significant figure),且數字範圍至少為10^(-37) 到10^37 。第一個規定六個有效數字的意思是--例如,以float型態表示33.333333這個數字時,至少前六位數字是正確的;而第二個規定有效範圍的意思則是方便用來表示太陽的質量(2.0e30公斤)、質子的電荷(1.6e-19庫侖)或是國債…等等這類的數值。
(中間略過)
此外,c還提供了double浮點數型態。double的數字範圍跟float一樣,不過其有效數字至少可達10個數字,…(以下略過)
c允許第三種浮點數型態:long double,其目的是為了增加精確度,不過c只保證long double至少和double一樣的精準。
另外一本(visual c++6教學範本)則說float為7位有效位數,double為15位。
兩本寫的不太一樣,該聽哪一本的?
想問的是,這個有效數字是怎麼看,像33.333333是前六個也就是33.3333至少是正確的嗎?
有效數字和數字範圍差別在哪?數字範圍是指可以顯示出來的是10^(-37) 到10^37,在這之間的值有可能是不正確的?
還請大大指教一下,謝謝
[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接
快速回覆
送出中...
XYZ007
銀驢友〔高級〕
今日心情
. 積分:
1065
. 文章:
9458
. 收花: 6399 支
. 送花: 705 支
. 比例: 0.11
. 在線: 2024 小時
. 瀏覽: 48470 頁
. 註冊:
7237
天
. 失蹤:
562
天
. Taiwan
#2 : 2011-2-16 09:47 PM
全部回覆
送花
(0)
送出中...
那假如double有15個有效位數,308-15=293
那意思是有293個不精確的小數?
[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接
快速回覆
送出中...
快速回覆
表情符號
更多 Smilies
字型大小 :
小
|
中
|
大
|
巨
[完成後可按 Ctrl+Enter 發佈]
溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別
關閉
表情符號
關閉
Discuz! 代碼
使用個人簽名
接收新回覆信件通知
發表時自動複製內容
[立即複製]
(IE only)
論壇跳轉 ...
所在時區為 GMT+8, 現在時間是 2024-4-27 03:49 PM
清除 Cookies
-
連絡我們
-
TWed2k
© 2001-2046
-
純文字版
-
說明
Discuz!
0.1
| Processed in 0.018875 second(s), 7 queries , Qzip disabled