【发布时间】:2021-07-01 06:16:55
【问题描述】:
我正在尝试将 int32 值转换为浮点数,当我尝试转换 0x0FFFFF 以上的值时,最后一个小数点总是四舍五入到最接近的值。我知道当一个值不适合目标浮动成员时,它会被舍入,但我需要知道哪个是这个限制值。 例如11111111 (0x69F6BC7) 打印为 111111112.0 。
【问题讨论】:
-
你能用你试过的代码 sn-p 更新问题吗?
-
@BharatS:这不是调试问题,不需要显示代码。问题很明确。
-
您知道
float类型(大部分)只能准确存储大约 7 个十进制数字吗? -
问题是我正在使用一个名为 Embedded Wizard 的工具,它有自己的基于 c/cpp 的语言,但它只支持浮点而不是双精度。我开发了一个数字键盘,当用户按下 1111111.11 时,我将其存储为 111111111 并除以数字精度单位(在本例中为 100)。这样做时,我需要将 111111111 转换为浮点数,然后除以 100.0 以存储此值以供用户使用。