RSS   



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


 


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


十週年紀念徽章(六級)  

 . 積分: 560
 . 文章: 837
 . 收花: 5039 支
 . 送花: 5967 支
 . 比例: 1.18
 . 在線: 4584 小時
 . 瀏覽: 22770 頁
 . 註冊: 6918
 . 失蹤: 137
#1 : 2011-2-16 08:09 PM     全部回覆 引言回覆

從基本的C來說 (非c++)

float 有 6個有效位數(小數點以後),範圍為 10^(-38) ~ 10^(38)
----------------------------------------------
  (+-1.175494E-38 ~ +-3.402823E+38)
有效位數為小數點後之數字 ,而數質範圍如 () 內之範圍
----------------------------------------------


double 有 15個有效位數(小數點以後),範圍為 10^(-308) ~ 10^(308)

基本上通則是如此

但電腦儲存資料是以二進制處理
故實際數值範圍並非整數
而不同之電腦系統因硬體不同
軟體也可能會為之修正
實際結果
以所使用之 C編譯器而定



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


十週年紀念徽章(六級)  

 . 積分: 560
 . 文章: 837
 . 收花: 5039 支
 . 送花: 5967 支
 . 比例: 1.18
 . 在線: 4584 小時
 . 瀏覽: 22770 頁
 . 註冊: 6918
 . 失蹤: 137
#2 : 2011-2-16 10:01 PM     全部回覆 引言回覆

308 指的是 10^308 次方
因為實際放有效值的只有 8 byte
故實際有效的數值是 (2^64)/2
有效位數大約是15位(超過的部分會被忽略,處理模式由C編譯器決定)
多餘的部分是由 次方部分所涵蓋
而非 308-15 的狀態

[cld 在  2011-2-16 10:09 PM 作了最後編輯]



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

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-4-27 05:19 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.019487 second(s), 7 queries , Qzip disabled