分页: 1 / 1

gcc编译的C程序,想对一个double取整,应不应该用强制类型转换?

发表于 : 2008-06-22 16:21
bearscafe
已有一个很长的double型变量a,现在只需要它的整数部分,于是直接:

代码: 全选

long b = (long)a;
这样做有无危险性?是否会带来程序的不稳定?盼解释,谢谢~

发表于 : 2008-06-23 3:08
fredking
会有精度损失
不过如果整数部分超过了LONG的最大范围,会有overflow.

发表于 : 2008-06-24 15:13
fuhuizn
没问题

发表于 : 2008-07-17 8:05
ubuntuprimer
如果没记错的话double的范围是10的307次方
如果太大的话long是装不下的就像2楼说的:overflow! :!:

发表于 : 2008-07-20 13:43
qakito
正数用floor,负数用round比较保险吧?

发表于 : 2008-07-20 13:55
kofshower
自己决定