LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1119|回复: 7

13位的char如何用long double表示!

[复制链接]
发表于 2003-7-25 21:03:49 | 显示全部楼层 |阅读模式
13位的char如何用long double表示!我使用的是liunx 8
我写的c语句是

long double beginCardNo;
beginCardNo=strtold(filename);
printf("begin cardNo 1 is %Lf\n",beginCardNo);

字符串 filename 为 50773200006000
结果却是
begin cardNo 1 is -603979776.000000
发表于 2003-7-26 03:01:59 | 显示全部楼层
我也没搞懂,strtod就很正常,strtold就不对,不是位数的问题,“0”就正确其他都不对。
一般情况用strtod就够用了。
发表于 2003-7-26 03:09:37 | 显示全部楼层
这样写:
#define __USE_ISOC99
#include <stdlib.h>
就好了。
或者用gcc -std=c99 tt.c -o tt
 楼主| 发表于 2003-7-26 11:11:04 | 显示全部楼层
"strtod就很正常,strtold就不对"这句话这么解释?
我增加#define __USE_ISOC99 #include <stdlib.h>以后
输出的值为1314619392.000000
 楼主| 发表于 2003-7-26 21:16:36 | 显示全部楼层
主要是没有加#include <stdlib.h>
加不加#include <stdlib.h>
有什么区别
 楼主| 发表于 2003-7-26 21:22:42 | 显示全部楼层
不好意思!加了#include <stdlib.h>后strtod和strtold函数就能够正常工作,本贴好像不能够设置为精吧?
发表于 2003-7-26 22:56:13 | 显示全部楼层
这个精不是我加的,可能是无双兄或者是libinary兄加的吧。
发表于 2003-7-27 03:16:29 | 显示全部楼层
也不是我加的,似乎算不上精华吧。
倒是可以加一条到FAQ里。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表