C语言,我想设置一个变量num,用来存储某个数据(位数在10位以上),但是不确定数据的类型,如何定义num?

存放的数据可能是整数类型(如5000000000),也可能是小数(如942379104.781),我用的_int64 num,只实现了整数的存储,小数怎么办呢?

联合(union)不知符不符合要求
union mod{
long i;
double f;

}
然后声明
union mod num;//num为mod类型联合变量
赋值的时候
num.i=100;//整数
num.f=100.23;//小数
联合在同一时间只能存储一个值,也就是说不是小数就是整数;
具体的可以百度一下
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-19
因为你存储的类型不确定(可能是整数型或小数型),所以建议使用struct 结构体,
先声明 typedef struct num{
double d;

int i;

};
让后直接这样定义就行了
存储double型, num d.d=942379104.781;
存储int型, num i.i=5000000000;

顺便说一下,使用union可能导致数据的覆盖或保留。
第2个回答  2013-02-19
可以用字符数组,或者统一转换成浮点型,用double存,整数转浮点可以等值转,浮点转整数可不行。。。。
第3个回答  2013-02-21
你就用double类型的呗,这个也是64位的数据类型
第4个回答  2013-02-19
浮点也有精度问题,和整数相互转换是有误差的。直接用字符串存储吧

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网