<分区>
Possible Duplicate:
NaN Literal in C?
我正在用 ANSI C 编写一个函数,它接收两个数字作为参数。参数为int
或float
类型。根据我的过滤器,该号码可能有效也可能无效。我如何返回一些意味着失败的值?返回类型是 float
。我首先想到的是 NaN
抽象类型。但我不知道如何在 ANSI C 中表示它。
(抱歉我的英语不好。英语不是我的母语)
标签 c floating-point nan c89
<分区>
Possible Duplicate:
NaN Literal in C?
我正在用 ANSI C 编写一个函数,它接收两个数字作为参数。参数为int
或float
类型。根据我的过滤器,该号码可能有效也可能无效。我如何返回一些意味着失败的值?返回类型是 float
。我首先想到的是 NaN
抽象类型。但我不知道如何在 ANSI C 中表示它。
(抱歉我的英语不好。英语不是我的母语)
最佳答案
NaN 不是“抽象类型”。它是一个 float 据的值。
如果“ANSI C”是指标准 C(这是该术语的实际含义,就其本身而言),请包括 <math.h>
并使用 NAN
产生一个 nan 的宏,和 isnan(x)
检测一个。
如果您所说的“ANSI C”实际上是指长期替换的 C89 标准(有些人打算这样做,即使它在形式上不正确),您可以使用 0./0.
生成 NaN 值, 并用 x != x
检查一个.
关于c - 如何在 ANSI C 中定义 NaN 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14174991/