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

使用read_excel读取Excel后值变为1.1000000000000001而非1.1的原因

为什么读取Excel时1.1会显示为1.1000000000000001?

这是典型的二进制浮点数精度限制导致的问题,具体原因如下:

  • 十进制小数1.1无法被二进制浮点数精确表示:计算机存储数值时使用二进制,而1.1转换成二进制是无限循环的小数,只能用有限位二进制近似存储,这个近似值转回十进制后就会变成1.1000000000000001。
  • Excel的格式化隐藏了真实值:Excel默认会对浮点数做显示格式化,把这个近似值展示成看起来“精确”的1.1,但单元格底层存储的其实是那个近似值。
  • read_excel读取的是底层真实值:readxl包的read_excel函数会直接读取Excel单元格存储的原始数值,不会像Excel那样做格式化处理,所以会把真实的近似值展示出来。

如果需要让数值显示为1.1,可以用round()函数调整精度,比如:

my.df$target_column <- round(my.df$target_column, 1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 11:34:52