棋牌源码吧

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 206|回复: 0

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

[复制链接]

2971

主题

0

回帖

8930

积分

超级版主

Rank: 8Rank: 8

积分
8930
发表于 2023-8-9 03:16:28 | 显示全部楼层 |阅读模式
在32位平台上,通常int是4字节长度,最多表示到21亿多,而int型是“绝对精确”的,换句话说,就是int行最多可以保证10位十进制有效数字的精确度。
而f字节跳动公司简介loat只能保证次方怎么打出来6位有效数字的精确度,因此int到float数字广大的转换是可能丢失精度的,比如整数字节跳动创始人“1234567899”转换成float后,大次方怎么打出来约是:1.2345次方计算器在线使用7936乘10的9次方,也就是从第7位有效数字开始已经不准确了。

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

在32位平台上,通常int和float都是4字节的,那既然字节数一样,凭什么int只能表示到21亿,而float可以表示到10的38次方?答案就是float跟int相比,牺牲了精确度,换来了更大的表示范围。
游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|棋牌源码吧

GMT+8, 2024-9-20 09:07 , Processed in 0.063391 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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