RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [C&C++] [問題]關於c的浮點數   字型大小:||| 
XYZ007
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14


十週年紀念徽章(四級)  

今日心情

 . 積分: 1065
 . 文章: 9458
 . 收花: 6399 支
 . 送花: 705 支
 . 比例: 0.11
 . 在線: 2024 小時
 . 瀏覽: 48470 頁
 . 註冊: 7237
 . 失蹤: 562
 . Taiwan
#1 : 2011-2-16 07:08 PM     全部回覆 引言回覆

我看的書(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,在這之間的值有可能是不正確的?
還請大大指教一下,謝謝



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
XYZ007
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14


十週年紀念徽章(四級)  

今日心情

 . 積分: 1065
 . 文章: 9458
 . 收花: 6399 支
 . 送花: 705 支
 . 比例: 0.11
 . 在線: 2024 小時
 . 瀏覽: 48470 頁
 . 註冊: 7237
 . 失蹤: 562
 . Taiwan
#2 : 2011-2-16 09:47 PM     全部回覆 引言回覆

那假如double有15個有效位數,308-15=293
那意思是有293個不精確的小數?



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 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