首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

很大的数据值为什么返回是0?解决方法

2012-02-04 
很大的数据值为什么返回是0??????????_int64lngVal15*pow(16,9)为什么lngVal的值为0???是因为数据类型容

很大的数据值为什么返回是0??????????
_int64   lngVal=15*pow(16,9);
为什么lngVal   的值为0???是因为数据类型容量太小吗?可是用什么类型呢?
long   int也试了,我很菜,请高手指教

[解决办法]
long float就可以
[解决办法]
int64在各个操作系统里实现有所不同,不过个人意见,不要使用这个东西吗,最好还是自已来控制,使用两个int来表示32位。不过如果lz比较懒的话,我想使用double没有什么问题。
[解决办法]
15*pow(16,9)表示是占用了5个Byte的空间,但是可能是你的pow函数采用的不是Int64类型
你可以自己写一个支持long int的pow函数,或者直接写9个16的乘积测试一下看看

[解决办法]
问题在于pow函数在计算过程中采用的是int,而其结果已经超过了int的标识范围

可以时时这么写
_int64 lngVal = (_int64)15 * (_int64)pow(16, 3) * (_int64)pow(16, 3) * (_int64)pow(16, 3)

热点排行