warning C4244: “=” : 从“float”转换到“int”,可能丢失数据

自助开通VIP,整站资源任意下载

在32位平台上,通常int是4字节长度,最多表示到21亿多,而int型是“绝对精确”的,换句话说,就是int行最多可以保证10位十进制有效数字的精确度。

而float只能保证6位有效数字的精确度,因此int到float的转换是可能丢失精度的,比如整数“1234567899”转换成float后,大约是:1.23457936乘10的9次方,也就是从第7位有效数字开始已经不准确了。

warning C4244: “=” : 从“float”转换到“int”,可能丢失数据,warning C4244: “=” : 从“float”转换到“int”,可能丢失数据,第1张

double可以保证15位10进制有效数字的精度,所以从int到double不会有这个警告。

warning C4244: “=” : 从“float”转换到“int”,可能丢失数据,warning C4244: “=” : 从“float”转换到“int”,可能丢失数据,第2张

在32位平台上,通常int和float都是4字节的,那既然字节数一样,凭什么int只能表示到21亿,而float可以表示到10的38次方?答案就是float跟int相比,牺牲了精确度,换来了更大的表示范围。

本站源码仅做学术研究,自娱自乐使用,不得用于赌博性质的非法商业用途!转载请说明出处!
九牛资源网 » warning C4244: “=” : 从“float”转换到“int”,可能丢失数据

这里有你所需要的,找专业的人做专业的事!

游戏演示 联系客服