Je veux la valeur absolue d'un double négatif - et je pensais que la fonction abs
- était aussi facile à utiliser qu'en Java - mais PAS!
Il semble que la fonction abs
- renvoie un int parce que j'ai la valeur 3.8951 et que le résultat est 3.000000
double d1 = abs(-3.8951);
printf("d1: ...%lf", d1);
Comment puis-je résoudre ce problème? C’est-à-dire que je veux la valeur absolue de double
.
Utilisez fabs()
(in math.h) pour obtenir une valeur absolue pour double
:
double d1 = fabs(-3.8951);
Utilisez fabs
au lieu de abs
pour rechercher la valeur absolue des types de données double
(ou float
). Incluez l'en-tête <math.h>
pour la fonction fabs
.
double d1 = fabs(-3.8951);
Il est à noter que Java peut surcharger une méthode telle que abs
pour qu’elle fonctionne avec un entier ou un double. En C, la surcharge n'existe pas, vous avez donc besoin de fonctions différentes pour l'entier et le double.
J'ai trouvé que l'utilisation de cabs(double)
, cabsf(float)
, cabsl(long double)
, __cabsf(float)
, __cabs(double)
, __cabsf(long double)
est la solution