gpt4 book ai didi

c++ - C++ 如何将 int 舍入为 float/double?

转载 作者:搜寻专家 更新时间:2023-10-31 02:14:14 26 4
gpt4 key购买 nike

如果有符号/无符号整数隐式转换为 float / double ,C++ 如何舍入?

喜欢:

int myInt = SomeNumberWeCantExpressWithAFloat;
float myFloat = myInt;

我的大学脚本如下所述:结果值是最接近原始值的可表示值,其中以实现定义的方式打破了联系。

请解释“最接近的可表示值” 是如何计算的,以及“以实现定义的方式打破关系的地方” 应该是什么意思。

编辑:
由于我大部分时间都在使用 GCC,请提供有关 GCC 默认使用的浮点表示的更多信息(如果有的话)。

最佳答案

单精度 float 有 24 位尾数。在 32 位 int 表示值高于 224 和低于 -(224) 的系统上需要舍入。

值 224+1 = 16777217 是第一个不能用 IEEE binary32 格式准确表示的 int。有两个 float 表示可用 - 16777216,它比精确值低 1,而 16777218,它比精确值高,也高 1。因此,我们有一个平局,这意味着 C++ 是允许的选择这两种表示之一。

关于c++ - C++ 如何将 int 舍入为 float/double?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40193484/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com