Bonjour,je voudrais créer une classe(ou type) fixed_32_t(en C++)mais pour ça je besoin de connaitre le nombre de chiffre après la virgule du float.
Quelqu'un peut m'aider svp?
Bonjour,je voudrais créer une classe(ou type) fixed_32_t(en C++)mais pour ça je besoin de connaitre le nombre de chiffre après la virgule du float.
Quelqu'un peut m'aider svp?
Kamoulox.
Ou bien 42 ?
La question ne veut rien dire.
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
j'ai peut-etre mal posé ma question,mais pour creer une classe virgule_fixe j'ai besoi de connaitre grace a un std::string le nombre de chiffre apres la virgule(si float vaut 5.xyz [le nombre de chiffre après virgule donc ici 3,pas la valeur])et le mettre dans un int ,donc je vous demande comment connaitre le nombre de chiffre après la virgule ?
vous pouvait m'aider svp?
float représente les entiers relatifs, noté R en mathématiques et ces chiffres ont une infinité de chiffres après la virgule.
Le format binaire ne permet pas ça mais ne permet pas non plus d'avoir une valeur précise pour l'immense majorité des valeurs possibles.
Si tu veux afficher X chiffres après la virgule tu utilises la syntaxe de formatage d'affichage de std::ostream ou printf.
Si tu veux stocker des valeurs à virgule fixe, je l'ai fait ici https://bousk.developpez.com/cours/s...n-avancee/#LII
Si tu veux juste prendre 3 chiffres après la virgule, il suffit de multiplier par 1000![]()
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
J'ai regardé vite faitmais je pense que c'est 1 truc impossible.
Tu peux le savoir avec les nombres appartenant à D, mais pas à R (et sûrement 1 partie de Z) - lien wiki sur les nombres décimaux en français
c'est à dire tous les nombres ayant 1 nombre fini de chiffres après la virgule et pas infini comme pi ou 1/3.
Il faut prendre la mantisse/ la significande d'1 nombre flottant et chercher le dernier bit mis à 1 (le plus à droite) - le nombre de chiffres après la virgule est la différence entre le nombre de chiffres exposant et cet index.
Rappel, d'après la norme IEEE 754, un nombre flottant est de la forme signe (1 ou -1) * base (2) ^ (exposant - biais) * 1,{mantisse/ significande}
bonjour a tous svp en voyant ce sujet jai essayer moi aussi d’aider mai je suis tomber face a un petit problème:
jai réussi a créer un code qui donnait le nombre de chiffre après la virgule mais ne pouvait pas donner plus de 6 est ce un problème de surcharge
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 int apres_virgule( double a) { //on creer dabord une chaine caractere elle conservera le nombre apres la virgule std::ostringstream chaine(""); //on cree un variable qui tranformeraa en entier de tel sorte que quon ai uniquement la partie entiere int b =a; //on cree une autre variable en faisant a-b il nous reste que le nombre decimal apresla virgule float c=a-b; // on cree un variable nombre qui retournera le nombre de chriffre apres la virgule a la fin dela fontion int nombre; //on transforme le nombre decimal stocke dans c en chaine chaine<<c; //on compte le nombre de lettre dans cette meme chaine nombre=(chaine.str().size())-2; //on retourne le nombre de lettre return nombre; }
Partager