limits.h
指定非浮点数学类型的限制,例如INT_MIN
和INT_MAX
。这些值是您可以使用int表示的最负值和最正值。
在float.h
中,有FLT_MIN
和FLT_MAX
的定义。如果您执行以下操作:
NSLog(@"%f %f", FLT_MIN, FLT_MAX);
您将获得以下输出:
FLT_MIN = 0.000000, FLT_MAX = 340282346638528859811704183484516925440.000000
如您所料,
FLT_MAX
等于一个很大的数字,但是为什么FLT_MIN
等于零而不是一个很大的负数? 最佳答案
它实际上不是零,但是如果您使用printf
或NSLog
检查它,则它看起来可能像零。
根据%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/