浮点型或双精度型特殊值

2023-12-24

我有可能为“空”的双精度(或浮点)变量,如不持有有效值。如何使用内置类型 float 和 double 来表示这种情况?

一种选择是具有浮点数和布尔值的包装器,但这是行不通的,因为我的库具有存储双精度数的容器,而不是存储双精度数的对象。另一种方法是使用 NaN (std::numeric_limits)。但我认为没有办法检查变量是否为 NaN。

如何解决需要“特殊”浮点值来表示数字以外的内容的问题?


我们通过使用 NaN 来做到这一点:

double d = std::numeric_limits<double>::signaling_NaN();
bool isNaN = (d != d);

NaN 值与自身是否相等进行比较将产生 false。这就是测试 NaN 的方式,但这似乎只有在以下情况下才有效:std::numeric_limits<double>::is_iec559是真的(如果是这样,它也符合 ieee754)。

在C99中有一个宏叫做isnan为此在math.h,它也检查浮点数是否为 NaN 值。

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

浮点型或双精度型特殊值 的相关文章

随机推荐

  • Angular 2 快速入门 404 GET /app/main.js

    我正在尝试 Angular 2 的快速入门 但我不知道它是否有效 我一直在寻找一些类似的问题 但没有找到答案 有人可以帮助我吗 这是我的代码 应用程序组件 ts import Component from angular2 core Com
  • Git 自动重写分支上的 git 提交消息

    有什么方法可以在分支上运行脚本来重写提交消息中包含特定子字符串的所有提交消息 说我有一个像这样的回购协议 https github com Norfeldt git history example 然后我想重写所有提交消息 在mybranc
  • 找不到模块“vuetify/lib/framework”的声明文件

    当我执行命令时npm run serve出现上述错误 2 21 Could not find a declaration file for module vuetify lib framework C Users valut source
  • 最终启动顺序错误 - STM32L476 的 Eclipse System Workbench 调试

    我正在尝试调试和运行 STM32L476 的简单汇编代码 我已经设置了 Eclipse Oxygen 在 Eclipse 中安装了最新版本的 System Workbench 插件并安装了 ST Link 驱动程序 IDE 成功构建了程序
  • Java API 找出编译类文件的 JDK 版本?

    是否有任何 Java API 可以找出编译类文件的 JDK 版本 当然 有 javap 工具可以查找主要版本 如中提到的here https stackoverflow com questions 1096148 how to check
  • Android:加速度计错误检测

    我有一个代码片段来检测加速度计的运动 有时它可以通过正确检测轻微的运动来工作 但有时当我保持设备空闲时它也会检测到运动 Android 上的内置加速度计检测是否存在问题 我使用 HTC G 1 设备 我的代码片段如下 如何解决该问题 以便我
  • 使用 Kdbg 调试汇编代码

    我有一个项目 其中包含一份 c C 源代码和一份 S 汇编源代码 编译和链接后 有没有办法使用 Kdbg 调试 S 代码 我正在从 c 文件调用一个 S 函数 但 Kdbg 中没有加载任何代码 在源中添加 file 指令 例如 file s
  • 如何使用 pyspark 对 RDD 中的值进行分组和计数以返回一个小摘要?

    一些示例数据 new data name Tom subject maths exam score 85 name Tom subject science exam score 55 name Tom subject history exa
  • 似乎无法访问 animate.css

    所以我做了 npm install animate css save 安装成功了 我可以在我的node modules我希望能够在我的 elixir phoenix react 项目中使用 animate css 我只是不确定在哪里导入 需
  • HTML/CSS div 未在页面顶部对齐

    抱歉 这个问题似乎是重复的 但他们都没有解决我的问题 所有边距 边框和内边距设置均设置为 0px 主页面div的margin left和margin right两边都设置为15px 至少我看不到任何地方我忘记将其中之一设置为 0px 由于某
  • EF Core 2.0 OwnsOne 列前缀

    使用 OwnsOne 映射复杂类型时 sql 列名称以属性名称为前缀 是否可以在映射中指定前缀名称 这是我的映射 e OwnsOne x gt x Attributes cb gt cb OwnsOne a gt a Supplier 我希
  • tostring() 被隐式调用...如何?

    在下面的代码中 如何toString 是隐式调用的 class Payload private int weight public Payload int w weight w public void setWeight int w wei
  • h2数据库的jdbc连接字符串是什么?

    我正在尝试连接到本地计算机上的 h2 数据库以创建 sql DataSource 对象 我正在运行 Windows 在定义项目 app properties 文件中的数据文件的路径时遇到一些问题 假设本地目录数据文件的路径是 D proje
  • 格式错误的数组文字 - PostgreSQL

    我想将数组从 jsonb 字段复制到 PostgreSQL 数组列 CREATE TABLE survey results id integer NOT NULL areas text raw jsonb DEFAULT jsonb INS
  • ggplot 图例中的 Unicode 字符

    我正在尝试使用 R 中的 ggplot2 绘制一些图表 并使用 unicode 字符 例如日语 标记图例 以下是我的代码 ggplot mtcars aes x mpg y wt colour geom line But I end up
  • 使用 for 循环附加 onclick 方法

    我将 onclick 事件附加到我动态创建的元素中 我正在使用下面的代码 这只是重要的部分 Test prototype Show function contents for i 0 i lt contents length 1 i var
  • ksoap2 问题 java.net.ConnectException

    我正在使用 kSoap2 访问肥皂网络服务 我正进入 状态java net connectException执行以下行时 androidHttpTransport call Constants SOAP ACTION GET METHOD
  • 无效的“Podfile”文件:未定义的方法“存在?”对于文件:类

    在 Xcode 项目中安装 pod 时 我遇到如下 Podfile 问题 Invalid Podfile文件 未定义的方法 存在吗 对于文件 类 我确实尝试过更新 pod 版本brew upgrade cocoapods并点击以下链接 ht
  • CSS calc() 的边框宽度?

    我可以将 calc 与 border width 一起使用吗 我希望以下 CSS 能够工作 my element border left width calc 10 10px border right width calc 10 20px
  • 浮点型或双精度型特殊值

    我有可能为 空 的双精度 或浮点 变量 如不持有有效值 如何使用内置类型 float 和 double 来表示这种情况 一种选择是具有浮点数和布尔值的包装器 但这是行不通的 因为我的库具有存储双精度数的容器 而不是存储双精度数的对象 另一种