首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将整型转换为浮点型-这是如何工作的?

将整型转换为浮点型-这是如何工作的?
EN

Stack Overflow用户
提问于 2015-12-13 02:48:24
回答 1查看 54关注 0票数 0

我将一个正则整数转换为浮点数,我发现非常奇怪的是,这取决于我转换的值,在转换之后,LSB可能会翻转一点。

下面是一个例子:

代码语言:javascript
运行
复制
Enter a number: 1313131360
FLOAT:          01001110100111001000100110010111
                        ^
                This is where the mantissa starts
INT(Original):          1001110010001001100101101100000
INT(BackFromFloat):     1001110010001001100101110000000

我将数字1313131360转换为float,然后返回到int,你可以看到最后一行的第8位变成了1。

更多的我注意到,如果我输入数字1313131328,它不会改变这一位:

代码语言:javascript
运行
复制
Enter a number: 1313131328
FLOAT:          01001110100111001000100110010110
                        ^
                This is where the mantissa starts
INT(Original):          1001110010001001100101101000000
INT(BackFromFloat):     1001110010001001100101100000000

为什么会这样呢?

EN

Stack Overflow用户

发布于 2015-12-13 08:22:09

在这两种情况下,转换都是从四舍五入到最近的四舍五入,四舍五入到偶数。在每种情况下,都必须丢弃最后7位。问题是位8的哪个值使浮点数尽可能接近原始输入。

01100000更接近10000000,而不是00000000。

01000000正好是00000000和10000000之间的一半。这将调用平局打破规则,该规则选择将最低有效尾数位设为零的规则。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34243589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档