PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] atof()長度是否會有限制
作者:
jiqian
(JIM)
2015-06-15 20:23:51
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VS10,C++
問題(Question):
prdict(InputArray _src, int &minClass, double &douDist) const {
...
char labelchar[70]="3387226516975675659530";
douDist=atof(labelchar);
printf("douDist=%f\n",douDist);
}
其輸出的結果竟然是"3387226516975675500000.000000"
¯¯
請問我是遺漏了什麼基本觀念嗎~
為什麼到第17位的時候會發生錯誤~
謝謝回答唷
作者:
Killercat
(殺人貓™)
2015-06-15 20:27:00
這其實讓我有點驚訝,精確度到17其實是double而非float所以atof其實會回傳...double?其實double的有效精確位數是16 你17對應該是湊巧...誒,atof還真的是回傳double...我一直以為是float
http://tinyurl.com/bfa2472
作者: longlongint (華哥爾)
2015-06-16 04:32:00
IEEE754對 2^-mantisa長度 取log可以大約估計有效位數另外你也可以把double的二進位內容印出來看
作者: celen99 (珍惜每一天)
2015-06-16 09:40:00
double. 不是應該是%lf ?????
作者:
Feis
(永遠睡不著 @@)
2015-06-16 09:50:00
不是, 請左轉 scanf
作者:
Killercat
(殺人貓™)
2015-06-16 11:24:00
其實atof這命名比較令人驚訝 為什麼是回傳double orz..另外float有效位數約7位 double約16位
作者:
EdisonX
(卡卡獸)
2015-06-16 12:30:00
atof : ascii string to floating number這和windows下的Wow64有異曲同工之妙
作者:
jiqian
(JIM)
2015-06-17 16:38:00
謝謝各位的解答,看來double的確只能到16~
繼續閱讀
Re: [問題] swith_case 用法
totemist
[問題] C程式小問題
vein576
Re: [討論] 大家對C語言中 free() 的看法?
uranusjr
Re: [討論] 大家對C語言中 free() 的看法?
suhorng
Re: [討論] 大家對C語言中 free() 的看法?
chchwy
[討論] 大家對C語言中 free() 的看法?
Hazukashiine
[問題] popen錯誤問題
wind00962
[問題] connected components 相關錯誤
AceID
[問題] inline 函數的位址
holydc
[問題] 河內塔用堆疊實作時產生的問題
j220584470k
Links
booklink
Contact Us: admin [ a t ] ucptt.com