Nic*_*rge 27 c floating-point numeric-limits
limits.h
指定非浮点数学类型的限制,例如INT_MIN
和INT_MAX
.这些值是您可以使用int表示的最负面和最正面的值.
在float.h
有相关定义FLT_MIN
和FLT_MAX
.如果您执行以下操作:
NSLog(@"%f %f", FLT_MIN, FLT_MAX);
Run Code Online (Sandbox Code Playgroud)
您将获得以下输出:
FLT_MIN = 0.000000, FLT_MAX = 340282346638528859811704183484516925440.000000
Run Code Online (Sandbox Code Playgroud)
FLT_MAX
等于一个非常大的数字,正如你所料,但为什么FLT_MIN
等于零而不是一个非常大的负数?
Nic*_*rge 55
它实际上不是零,但如果你使用printf
或NSLog
使用它检查它可能看起来像零%f
.
根据float.h
(至少在Mac OS X 10.6.2中),FLT_MIN
被描述为:
/* Minimum normalized positive floating-point number, b**(emin - 1). */
Run Code Online (Sandbox Code Playgroud)
注意该句中的正数:FLT_MIN
指的是大于零的最小(标准化)数.(有非常小的非标准化数字).
如果您想要最小浮点数(包括负数),请使用-FLT_MAX
.
Jon*_*ler 12
'%f'格式以固定格式打印6个小数位.由于FLT_MIN要小得多,因此在固定点看起来像零.如果您使用'%e'或'%g'格式,您将获得更好的格式化答案.与FLT_MAX类似.
#include <float.h>
#include <stdio.h>
int main(void)
{
printf("MIN = %f, MAX = %f\n", FLT_MIN, FLT_MAX);
printf("MIN = %e, MAX = %e\n", FLT_MIN, FLT_MAX);
return(0);
}
MIN = 0.000000, MAX = 340282346638528859811704183484516925440.000000
MIN = 1.175494e-38, MAX = 3.402823e+38
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23243 次 |
最近记录: |