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