int i, min, max; for (i = 1.0; i > 0; ++i) { max = i; }; min = i; printf ("int: min: %d max: %d \n", min, max);
4 Réponses :
Je pense que c'est ce que vous voulez:
flotteur:% f p>
flotteur long (double):% LF p>
Vous pouvez également vouloir le voir dans une notation exponentielle :% E p>
pour min / max pour flotter et double ici est ce que vous voulez P>
Voici un extrait de flotteur.h: p>
#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 */
Il cherche des constantes de mélange et max pour ces types
% f code> prend un
Double code> argument. (Mais si un
float code> est passé via
... code>, il est automatiquement favorisé à
double code>.)
% lf code> est incorrect.
% LF CODE> peut être utilisé pour un
Double Long code> argument.
Définir ces valeurs peut être une bonne solution dans des environnements intégrés où "flotteur.h" n'existe pas toujours
sur Linux, j'ai flotté.h qui a flt_max et dbl_max défini pour un flot maximal et des valeurs doubles respectivement. Je ne sais pas comment "standard" qui est, bien que ... p>
Si nous voulons faire confiance à Wikipedia , suffisamment standard. Soyez prudent, cependant: dbl_min code> ne fonctionne pas de la même manière que
int_min code>.
Il est entièrement standard (dans l'ensemble de l'ANSI C89, ISO C90 et ISO C99)
Les limites des types de points flottants sont définies dans float.h non limite. h p>
Pour calculer les limites d'un type de données donné, vous devez calculer simplement Ensuite, si vous considérez que ce type doit être signé, les valeurs MIN et max sont Ceci s'applique uniquement aux types d'entier, donc pas pour floattes et doubles, puis seulement pour les représentations entière complémentaire de deux. P> (2 ^ (Tailleof (type) * 8)) - 1 code>, qui est
(2 ^ numéros_of_of_bits ) - 1 code>. P>
-2 ^ (number_of_bits - 1) code> et
(2 ^ (number_of_bits - 1)) - 1 code> ou s'ils sont non signés, min sera 0 et max
(2 ^ numéry_of_bits) - 1 code>. p>
Cela ne fonctionnera pas pour des types de points flottants qui sont ce qu'il demande (bien que de manière quelque peu brouillée). Il a déjà les limites des types entier fournis par LIMITS.H
@Clifford: En fait, j'ai dit que cela ne fonctionnera que pour des entiers. J'ai manqué Limiths.h quand même. ;)
Vous avez effectivement dit cela, mon point était pourquoi? Cela ne répond pas à la question; fait simplement une chose simple compliquée. Vos formules ne sont même pas correctes, même si vous vous êtes souvenu de multiplier par Char_bit dans tous les cas.
@Clifford: Je n'ai pas remarqué qu'il incluait des limites.h
Vous trouverez des codes de formatage de printf valides dans en.wikipedia.org/wiki/printf#format_placeholferers a>
Je pense qu'il demande où trouver
dbl_min code> et
dbl_max code>. Une bonne question, en fait.
Même avec plusieurs modifications - thx Juliette & tout autre b> - Cet article n'est pas clair!
Juste pour vous faire savoir, je ne pense pas que vous devriez utiliser
min code> et
max code>. Renommez-les à
IMIN CODE> et
IMAX CODE>. C'est à cause de
#define min (A, B) = A> B? B: un code> quelque part là-bas ... (Je ne sais pas où.)
@Ferz parce que nous ne pouvons pas comprendre cela bien. Avez-vous essayé d'utiliser Google Translate ? (Bien sûr, je n'ai pas encore indiqué i>, mais d'autres semblent avoir.)
@FERZ: Je viens de réécrire votre question à "où sont définies les limites des types de points flottants?" et supprimez tout le code d'exemple non pertinent et vous auriez fait. Bien que j'imagine qu'il y a déjà une question en double. J'ai changé le titre pour vous; Je suis réticent à changer le contenu puisque vous pouvez en fait demander quelque chose d'autre!
@Clifford Désolé mauvais anglais. Je suis d'écrire mieux essayer. Toutefois, dans les limites de fichier.h et float.h non variables dBL_MIN et DBL_MAX et FLT_MAX. Je suis une tâche du livre Kernighan, Brian W.; Dennis M. Ritchie Tâche 2.1