Aller au contenu

Traitement Des Float Et Autre Nombres


yohannc

Messages recommandés

Bon voilà j'ai un gros soucis avec les nombres.

Quand j'effectue des opérations ils sont complètement buggé, par exemple :

 

//***********************

new float:a = 5;

new float:b = 2;

new float:c = 5;

new float:d = 2.0;

new float:e = 5.0;

new float:f = 2;

new float:g = 5.0;

new float:h = 2.0;

 

new float:r1 = floatdiv(a,B);

new float:r2 = floatdiv(c,d);

new float:r3 = floatdiv(e,f);

new float:r4 = floatdiv(g,h);

 

printf("\n r1=%f r2=%f r3=%f r4=%f",r1,r2,r3,r4);

 

// r1 = 2.5 r2 = 0 r3 = 0 r4 = 2.5

//****************************************

 

Vous voyez que r2 et r3 sont buggés alors que ce sont des float aussi.

 

J'aimerai donc savoir :

 

-Comment créer et afficher des entiers

-Comment arrondir un nombre (floatround marche pas)

 

C'est pour un système de vote que je suis en train de faire.

A la fin d'une partie, chaque utilisateur a 60 sec pour taper par exemple : /Rejouer 10 (pour rejouer 10 min à ce mode)

Le résultat est une moyenne des joueurs actifs (si un joueur ne vote pas c'est comme si il vote 0 min).

Les problèmes que j'ai :

- Quand une personne a voté, ça affiche genre : "Robert vote pour 25.00000 minutes".

- Le calcul du résultat donne un nombre énorme;

 

En java j'ai aucun soucis avec les variables mais là, mais dans ce langage c'est vraiment pas facile.

Lien vers le commentaire
Partager sur d’autres sites

Bon j'ai en partie résolution mon problème, c'est pas très propre mais ça à l'avantage de fonctionner, j'ai créé une p'tite fonction :

On entre un float par exemple, et ça retourne un entier.

 

 

int: VersInt(nombre){

new string[256];

format(string, sizeof(string),"%f",nombre);

if(nombre < 10){

strmid(string,string,0,1);

} else if(nombre < 100){

strmid(string,string,0,2);

} else if(nombre < 1000){

strmid(string,string,0,3);

}

 

new int:nb = strval(string);

 

 

return nb;

}

 

On voit bien que le problème est qu'il faut définir pour chaques puissances de 10 donc c'est pas super.

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement
×
×
  • Créer...