Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 浮点类型的限制?_C_Types_Floating Point - Fatal编程技术网

C 浮点类型的限制?

C 浮点类型的限制?,c,types,floating-point,C,Types,Floating Point,浮球和双人球怎么样? min是如何计算这个变量的? 对不起,英语不好我想这就是你想要的: 浮动:%f 长浮动(双):%lf 您可能还希望以指数表示法查看它:%E 对于浮动和双精度的最小值/最大值,这里是您想要的 下面是float.h中的一个片段: int i, min, max; for (i = 1.0; i > 0; ++i) { max = i; }; min = i; printf ("int: min: %d max

浮球和双人球怎么样? min是如何计算这个变量的?
对不起,英语不好

我想这就是你想要的:

浮动:%f

长浮动(双):%lf

您可能还希望以指数表示法查看它:%E

对于浮动和双精度的最小值/最大值,这里是您想要的

下面是float.h中的一个片段:

   int i, min, max;

    for (i = 1.0; i > 0; ++i)
    {
        max = i;
    };
    min = i;
    printf ("int: min: %d max: %d \n", min, max);

在linux上,我有float.h,它分别为最大float和double值定义了FLT_MAX和DBL_MAX。我不确定“标准”是什么,尽管…

浮点类型的限制是在not limits中定义的。h

要计算给定数据类型的限制,只需计算
(2^(sizeof(type)*8))-1
,即
(2^位数)-1

如果您认为此类型为符号,则min和max值为<代码> -2 ^(编号为1位)/<代码> <代码>(2位(编号为1位)-1 < /代码>或如果它们为未签名min,则为0和max <代码>(2位编号为1位)-1 < /代码> .
这只适用于整数类型,因此不适用于浮点和双精度,然后只适用于二的补码整数表示。

在中可以找到有效的printf格式代码,我想他是在问哪里可以找到
DBL\u MIN
DBL\u MAX
。事实上,这是一个很好的问题。即使经过多次编辑——thx朱丽叶和所有其他人——这篇文章也不清楚!只是想让你知道,我认为你不应该使用
min
max
。将它们重命名为
imin
imax
。这是因为
#define min(a,b)=a>b?b:a
外面的某个地方。。。(不知道在哪里。)@ferz,因为我们不能很好地理解它。你试过使用吗?(当然,我还没有投反对票,但其他人似乎投了反对票。)他正在寻找这些类型的MIX和MAX常量
%f
采用
双参数。(但是如果通过
..
传递
浮点值
,它会自动升级为
双精度
%lf
不正确
%Lf
可用于
长双精度
参数。在嵌入式环境中,定义这些值可能是一个很好的解决方案,因为“float.h”头并不总是存在,但我们要信任,这是足够标准的。但是,请小心:
DBL_MIN
的工作方式与
INT_MIN
不同。它是完全标准的(在所有ANSI C89、ISO C90和ISO C99中),不适用于浮点类型,这正是他所要求的(尽管有点混乱)。他已经有了limits提供的整数类型的限制。h@Clifford:事实上,我说过它只适用于整数。我错过了limiths.h你确实说过,我的意思是为什么?它没有回答这个问题;只会让简单的事情变得复杂。你的公式甚至都不正确,即使你在任何情况下都记得乘以字符。@clifford:我没注意到他包括了极限。h
   int i, min, max;

    for (i = 1.0; i > 0; ++i)
    {
        max = i;
    };
    min = i;
    printf ("int: min: %d max: %d \n", min, max);
#define DBL_MAX 1.7976931348623158e+308 /* max value */
#define DBL_MIN 2.2250738585072014e-308 /* min positive value */

#define FLT_MAX 3.402823466e+38F /* max value */
#define FLT_MIN 1.175494351e-38F /* min positive value */