You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

浮点数序列化/解析舍入疑问:为何解析后值与原值一致?

解答

你的预期是错误的,解析后的float值和原始值一致是正常现象,原因如下:

  • 原始单精度float的精确十进制值是0.111392557621002197265625,单精度float拥有24位有效二进制位,对应约7-8位可靠的十进制有效数字。
  • 你序列化时向上舍入得到的字符串0.111392558,和原始float值的差值小于float的最小精度单位(ULP)。stof在解析字符串时,会将其转换为最接近的float类型值,而这个最接近的值恰好就是你的原始float值。

换句话说,虽然舍入后的字符串有9位小数,但这个数值并没有超出原始float的精度覆盖范围,因此解析后会精准匹配到原始值。

内容的提问来源于stack exchange,提问作者perencia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 00:52:06