limits.h指定非浮点数学类型的限制,例如INT_MININT_MAX。这些值是您可以使用int表示的最负值和最正值。

float.h中,有FLT_MINFLT_MAX的定义。如果您执行以下操作:

NSLog(@"%f %f", FLT_MIN, FLT_MAX);

您将获得以下输出:
FLT_MIN = 0.000000, FLT_MAX = 340282346638528859811704183484516925440.000000

如您所料,FLT_MAX等于一个很大的数字,但是为什么FLT_MIN等于零而不是一个很大的负数?

最佳答案

它实际上不是零,但是如果您使用printfNSLog检查它,则它看起来可能像零。
根据%f(至少在Mac OS X 10.6.2中),float.h被描述为:

/* Minimum normalized positive floating-point number, b**(emin - 1).  */

请注意该句中的肯定:FLT_MIN表示大于零的最小(规范化)数字。 (有更小的非标准化数字)。

如果要最小浮点数(包括负数),请使用FLT_MIN

关于c - 为什么FLT_MIN等于零?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2528039/

10-11 19:07