Bonjour
En langage C j'ai écrit une fonction pour élever à la puissance, elle fonctionne bien pour les nombre entiers, décimaux, négatifs ou positifs, et pour les exposants entiers positifs ou négatifs:
J'aimerais améliorer cette fonction pour qu'elle gère les exposants décimaux.Code:float Core::pow (const float NUMBER, const signed long EXPONENT) { float value = 0; signed long n = 0; if (EXPONENT < 0) { value = NUMBER; for (n = -1; n > EXPONENT; n--) { value *= NUMBER; } value = 1.0 / value; } else if (EXPONENT == 0) { if (NUMBER < 0) { value = -1; } else { value = 1; } } else { value = NUMBER; for (n = 1; n < EXPONENT; n++) { value *= NUMBER; } } return value; }
J'ai regardé un certain nombre d'articles sur les exposants fractionnaires, faut dire ce qui est, je ne suis pas certain de saisir réellement les explications, et je n'ai pas encore la vision de ce à quoi pourrait ressembler le bout de code...
J'ai besoin d'élever à la puissance avec un exposant décimal (fractionnaire) car j'ai acheté un composant BMP180, c'est un baromètre, il fonctionne super bien, sauf que pour calculer l'altitude en fonction de la pression atmosphérique, il faut faire le calcul suivant:
Code:altitude = 44330 * (1 - (pression mesurée / pression au niveau de la mer) ^ (1 / 5.255))
Auriez vous une idée de comment faire ? Merci d'avance
-----