浮点型或双精度型特殊值

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(使用前将#替换为@)

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

  • 转换 const void*

    我有一个函数返回一个const void 我想用它的信息作为char 我可以将它投射为 C 风格的罚款 char variable但是当我尝试使用reinterpret cast like reinterpret cast
  • 现代 C++ 编译器是否能够在某些情况下避免调用 const 函数两次?

    例如 如果我有以下代码 class SomeDataProcessor public bool calc const SomeData d1 const SomeData d2 const private Some non mutable
  • MVC3中设置下拉列表中的所选项目

    我必须为视图中的下拉列表设置所选项目 但它不起作用 View div class editor label Html LabelFor model gt model Gender div div class editor field Htm
  • 未找到 Boost 库,但编译正常

    我正在尝试在 C 中使用 boost 的文件系统 使用时看起来编译没问题 c c Analyse c o Analyse o g W Wall L usr local lib lboost filesystem lboost system
  • 从复选框列表中选择循环生成的复选框中的一个复选框

    抱歉我的英语不好 在我的 ASP NET 网站上 我从 SQL 表导入软件列表 看起来像这样 但实际上要长得多 Microsoft Application Error Reporting br br Microsoft Applicatio
  • 传递 constexpr 对象

    我决定给予新的C 14的定义constexpr旋转并充分利用它 我决定编写一个小的编译时字符串解析器 然而 我正在努力保持我的对象constexpr将其传递给函数时 考虑以下代码 include
  • java中如何重新初始化int数组

    class PassingRefByVal static void Change int pArray pArray 0 888 This change affects the original element pArray new int
  • 处理右值时的 insert 与 emplace

    std string myString std unordered set
  • 在 C# 中,如何根据在 gridview 行中单击的按钮引用特定产品记录

    我有一个显示产品网格视图的页面 该表内有一列 其中有一个名为 详细信息 的超链接 我想这样做 以便如果用户单击该特定产品的详细信息单元格 将打开一个新页面 提供有关该产品的更多信息 我不确定如何确定哪个Product记录链接的详细信息以及我
  • 如何使用 Regex.Replace 从字符串中删除数字?

    我需要使用Regex Replace从字符串中删除所有数字和符号 输入示例 123 abcd33输出示例 abcd 请尝试以下操作 var output Regex Replace input d string Empty The d标识符
  • 如何使用 ASP.NET Core 获取其他用户的声明

    我仍在学习 ASP NET Core 的身份 我正在进行基于声明的令牌授权 大多数示例都是关于 当前 登录用户的 就我而言 我的 RPC 服务正在接收身份数据库中某个用户的用户名和密码 我需要 验证是否存在具有此类凭据的用户 获取该用户的所
  • 在 .NET MAUI 中实现 TouchTracking

    我一直致力于将我们的应用程序从 Xamarin Forms 迁移到 NET MAUI 我们的应用程序几乎没有绘图功能 用户可以用手指进行绘图 我们用了TouchTrackingXamarin Forms 中的 nuget 包 但与 NET
  • memcpy/memmove 到联合成员,这是否设置“活动”成员?

    重要说明 一些评论者似乎认为我是从工会抄袭的 仔细看memcpy 它从普通旧地址复制uint32 t 它不包含在联合中 另外 我正在复制 通过memcpy 到工会的特定成员 u a16 or u x in a union 不直接到整个联盟本
  • C++ - 多维数组

    处理多维数组时 是否可以为数组分配两种不同的变量类型 例如你有数组int example i j 有可能吗i and j是两种完全不同的变量类型 例如 int 和 string 听起来您正在寻找 std vector
  • 比较:接口方法、虚方法、抽象方法

    它们各自的优点和缺点是什么 接口方法 虚拟方法 抽象方法 什么时候应该选择什么 做出这一决定时应牢记哪些要点 虚拟和抽象几乎是一样的 虚方法在基类中有一个实现 可以选择重写 而抽象方法则没有 并且must在子类中被覆盖 否则它们是相同的 在
  • 模板类中的无效数据类型生成编译时错误?

    我正在使用 C 创建一个字符串类 我希望该类仅接受数据类型 char 和 wchar t 并且我希望编译器在编译时使用 error 捕获任何无效数据类型 我不喜欢使用assert 我怎样才能做到这一点 您可以使用静态断言 促进提供一个 ht
  • 在 Win32 控制台应用程序中设置光标位置

    如何在 Win32 控制台应用程序中设置光标位置 最好 我想避免制作句柄并使用 Windows 控制台功能 我花了整个早上沿着那条黑暗的小巷跑 它产生的问题比它解决的问题还要多 我似乎记得当我在大学时使用 stdio 做这件事相对简单 但我
  • 没有“对 *this”功能的右值引用的解决方法

    我有一个围绕可移动对象的代理容器类 并希望代理能够隐式生成对底层对象的右值引用 但仅当代理本身被移动时 我相信我将能够按照提案 n2439 实施此行为 将移动语义扩展到 this http www open std org jtc1 sc2
  • 当用户更改 Windows 中的语言键盘布局时如何通知?

    I want to show a message to user when the user changes the language keyboard layout of Windows for example from EN to FR
  • 如何在 C 中将 char 连接到 char* ?

    我怎样才能前置char c to char myChar 我有c值为 A and myChar值为 LL 我怎样才能前置c to myChar使 ALL 这应该有效 include

随机推荐

  • 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 来表示这种情况 一种选择是具有浮点数和布尔值的包装器 但这是行不通的 因为我的库具有存储双精度数的容器 而不是存储双精度数的对象 另一种