Procedure a utiliser si plusieurs types de variables dans une même formule ?
develdelphi
Messages postés97Date d'inscriptionmercredi 7 avril 2004StatutMembreDernière intervention20 avril 2009
-
25 mai 2007 à 14:53
nickydaquick
Messages postés416Date d'inscriptionvendredi 31 janvier 2003StatutMembreDernière intervention19 décembre 2013
-
5 déc. 2007 à 20:25
Bonjour,
voici que je suis face à un probleme classiqe sans doute mais je voudrais savoir quelle est la bonne methode pour formatter des different stypes de variables dans une même formule, dois je passer par d'autres fonctions et comment ?
voici mon code :
//////////////////////
<!-- BEGIN TEMPLATE: bbcode_code -->unsignedint volume = 0x00;
data unsignedint moyenne; //data pour liberer mem
unsignedlong moyenne2;
int a = 25;
float b = 0.001;
int c =-77;
moyenne2 = a * log10(moyenne/b)+c; //Erreur ici genere overspace memory
printf("Moyenne en dB: %li\n", moyenne2) ;
//////////////////////
Moyenne est intialisée à 0 au départ.
Avec cette formule je croyais qu'il fallait faire des castings, j'ai essayé
comme ça mais ca ne marche pas :
a * log10(moyenne/(int)b)+c;
comment pourrais je faire ?
Merci
A voir également:
Procedure a utiliser si plusieurs types de variables dans une même formule ?
julienbj
Messages postés452Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 décembre 200815 25 mai 2007 à 15:50
Thewarrior>> Le type "data" (ou mot clef) est utilisé sous certains compilos pour microprocesseur.
Il indique en général que la variable est mise en mémoire volatile et ne sera plus utilisée en sortie de fonction.
develdelphi
Messages postés97Date d'inscriptionmercredi 7 avril 2004StatutMembreDernière intervention20 avril 2009 25 mai 2007 à 17:40
Je pense que tu devais mettre des cast
((float)a) * log10(((float)moyenne)/b)+((float)c)
J'ai essayé ce code mais ça ne va pas peut etre parce que moyenne2 est un unsigned long ou car log10 retourne un double j'ai remplaceé tous les types de variables par double ça ne va pas non plus