int 比 float 精度高???而 float 比int的范围大?求原因?

 我来答
仁昌爱娱乐
高粉答主

2019-12-29 · 专注关心娱乐
仁昌爱娱乐
采纳数:760 获赞数:459747

向TA提问 私信TA
展开全部

int比float精度小。float比int的范围大。

int是用于定义整数类型变量的标识符。占用4字节,32比特,数据范围为-2147483648~2147483647[-2^31~2^31-1]。

FLOAT数据类型用于存储单精度浮点数或双精度浮点数。浮点类型的单精度值具有4个字节,包括一个符号位、一个8位二进制指数和一个23位尾数。此表示形式为float类型提供了一个大约在-3.4E+38~3.4E+38之间的范围。

扩展资料:

FLOAT的浮点包可以将二进制浮点数存储为非标准化数。非标准化数是带有保留指数值的非零浮点数,其中尾数的最高有效位为0。通过使用非标准化格式,浮点数的范围可以扩展,但会失去精度。无法控制浮点数以标准化形式还是非标准化形式表示。

浮点包决定了表示形式。浮点包从不使用非标准化形式,除非指数变为小于可以标准化形式表示的最小值。由于指数是以无符号形式存储的,因此指数的偏差为其可能值的一半。

qmdj1987
推荐于2017-11-24 · 超过10用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:29.1万
展开全部
其实,我觉得这两个是不同质的东西,不同质的东西不能进行量的比较。
int是存入整型数据。所以存入的整数是多少就是多少。不会丢失精度。
float是浮点型,浮点型数字一旦小数点后面数字多了必然会丢失精度。因为不可能小数点后面的数字无限的存下去。
更多追问追答
追问
呵呵也是啊。 都是32位,为什么一个大一个小?  大还大的很多?
追答
int32 在内存中的分配是:1bit(符号位)31bits(实际数字位)
float 在内存中的分配情况是:1bit(符号位) 8bits(指数位) 23bits(尾数位)
int32 的实际数字位决定了int32的范围;
float的指数位决定了float的范围,因为有指数位,所以范围会比int类型大很多很多。float的尾数位决定了float的精度。
float在内存中是按ieee754标准存储的。可以参看相关文档。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
allabuse
2011-12-18 · 超过13用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:35.2万
展开全部
int 在系统编译时 开辟2个字节的空间 float类型在系统编译时开辟4个字节空间
所以处理的时候 所以范围大 i
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式