从 Excel 单元格读取十进制值(在 C# 中)

2024-02-22

从包含小数的 Excel 单元格读取值时,我遇到以下问题:如果我在 Excel 的单元格中输入 9.95,CellValue.InnerText在 C# 中返回“9.9499999999999993”

我怎样才能获得输入的实际值,即“9.95”,知道试图获取这些值的代码事先并不知道它是小数还是数字。


Excel 将值存储为双精度浮点 http://en.wikipedia.org/wiki/Floating_point数字,很多时候您在 Excel 中输入的内容不能精确地存储为浮点数。

http://blogs.office.com/2008/04/10/understanding-floating-point- precision-aka-why-does-excel-give-me-seemingly-wrong-answers/ http://blogs.office.com/2008/04/10/understanding-floating-point-precision-aka-why-does-excel-give-me-seemingly-wrong-answers/

如果您确实想了解 Excel 如何存储您的值,您可以将 .xlsx 扩展名更改为 .zip,打开它,然后在文件中查看。这是您手机上存储的所有信息:

<sheetData>
    <row r="1" spans="1:1" x14ac:dyDescent="0.3">
        <c r="A1">
            <v>9.9499999999999993</v> 
        </c>
    </row>
</sheetData>

Excel 可以设计为存储您输入的精确值(通过将它们存储为十进制而不是浮点数),但算术运算会慢很多,因为所有计算都将在软件而不是硬件中完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Excel 单元格读取十进制值(在 C# 中) 的相关文章

随机推荐

  • 如何在 iOS 项目中添加两个或多个 kotlin 原生模块

    TL DR 如何在 iOS 项目上添加两个或多个 kotlin 原生模块而不需要获取duplicate symbols error 详细问题 让我们假设一个多模块 KMP 项目如下 其中存在一个适用于 Android 的本机应用程序和一个适
  • C# 中的 Marshall double[] 到 IntPtr?

    我正在尝试在 C 中将 double 转换为 IntPtr 这是我要转换的数据 double rotX 1 0 0 0 0 0 double rotY 0 0 1 0 0 0 double rotZ 0 0 0 0 1 0 这是我要输入 I
  • 我可以在java中将字符串解析为时间吗

    我正在使用 android text format Time 我需要一个函数来获取字符串并将该字符串转换为 Time 对象 由于其他原因 我最初将时间对象存储为字符串 我现在只需要将字符串传递到 Time 对象中即可 代码 Time tim
  • C++11“重载 lambda”,带有可变参数模板和变量捕获

    我正在研究一个 C 11 习惯用法 它可能被称为 重载 lambda http cpptruths blogspot com 2014 05 fun with lambdas c14 style part 2 html http cpptr
  • 无法通过 Unity 在 Android 上启动活动

    我正在使用 Unity 创建 Android 应用程序 我有两个插件 每个单独工作都很好 但是当我想要同时使用它们时 我无法在它们之间切换活动 在过去的十天里 我阅读了所有类似的问题 并尝试了从反编译 编辑 重新编译 Java 代码到从 U
  • 设置辅助功能上的窗口级别

    我正在开发一个 Mac OS X 应用程序 它操纵属于另一个应用程序的窗口 我为此使用辅助功能 我已经成功移动窗口并从我的应用程序查询其属性 现在我需要使窗口 始终位于顶部 基于另一个帖子 https stackoverflow com q
  • Java (JSP):在“子 jsp”中重复 contentType 标头

    当一个 jsp 中的标头重复包含在另一个 jsp 中时会发生什么情况 例如如果示例 jsp以此开始
  • 在不带“with”的情况下对 data.table 进行键控查找

    我有一个data table像这样的结构 除了我的真的很大 dt lt data table x 1 5 y 3 7 key x 我想通过以下方式查找该结构中的行another名称为的变量x 注意 与密钥的名称相同dt x lt 3 4 d
  • Google 日历 API 和 OAuth 问题

    我收到错误 com google gdata util AuthenticationException Unknown authorization header at com google gdata client http HttpGDa
  • 使用 Node.js 进行 Javascript 异步异常处理

    我目前正在开发一个 Node js 应用程序 并且遇到了常见的异步代码问题 我正在 Node 的 HTTP 模块之上实现一个服务服务器 该服务器支持 类似express 路由 例如 我的代码如下所示 server any someRoute
  • 使用掩码验证 IP 的 HTML5 模式

    我正在尝试为输入文本创建一个 HTML5 模式 其中包含 IP 地址和掩码 如下所示 10 120 15 30 28 或 172 181 30 0 24 我发现了一种 html5 模式http html5pattern com Miscs
  • 在多处理器机器上执行 C++ 程序

    我出于研究目的用 C 开发了一个程序 需要几天时间才能完成 现在我在我们的实验室 8 核服务器机器上执行它以快速获得结果 但我看到机器只为我的程序分配一个处理器 并且它的处理器使用率保持在 13 即使我将进程优先级设置为高级别并与 8 核相
  • 如何将edittext中的数据存储到android sqlite数据库中?

    我是 Android 的新开发人员 我想使用 sqlite 将用户数据存储在数据库中 对于该设计 xml 文件用户名作为 edittext 并采用按钮 在填写所有文本字段后 单击按钮时所有数据都存储在数据库中 并在屏幕上显示这些数据 这些都
  • 从不同文件夹渲染部分(不共享)

    如何让视图从不同的文件夹渲染部分 用户控件 在预览版 3 中 我曾经使用完整路径调用 RenderUserControl 但升级到预览版 5 后 这不再可能了 相反 我们得到了 RenderPartial 方法 但它没有提供我正在寻找的功能
  • QLDB 中的分页

    我注意到 QLDB 不支持LIMIT or SKIP实现基本分页所需的查询参数 将来是否会支持此功能 或者是否有其他方法在 QLDB 中实现分页 目前不支持 LIMIT SKIP QLDB 专为数据摄取而构建 我们建议在另一个专门构建的数据
  • 最佳 MySQL 配置 (my.cnf)

    以下是我的默认生产MySQL配置文件 my cnf 用于以 InnoDB 作为默认存储引擎的纯 UTF 8 设置 server bind address 127 0 0 1 innodb file per table default cha
  • 在 PHP 中使用另一个条件的变量

    我有这个代码 if isset GET act display gt display templates install main html if isset POST proceed prefix POST prefix if GET a
  • 使用@Transactional和Spring模板有什么区别?

    如果我在 DAO 中使用 Transactional 我的所有 EntityManager 查询是否都会通过提交和关闭进行封装 或者我需要使用Spring模板 JPA模板 Hibernate模板 使用 Transactional和Sprin
  • 使用 Genymotion 和 Charles 进行 SSL 代理?

    我正在尝试让 Genymotion Virtualbox 中托管的 x86 Android 模拟器 与 Charles 代理一起使用 我已成功使用网关 ip 虚拟机配置为使用仅主机适配器 fwiw 将设备连接到设备 wifi 代理设置中的代
  • 从 Excel 单元格读取十进制值(在 C# 中)

    从包含小数的 Excel 单元格读取值时 我遇到以下问题 如果我在 Excel 的单元格中输入 9 95 CellValue InnerText在 C 中返回 9 9499999999999993 我怎样才能获得输入的实际值 即 9 95