Bonjour à tous,
j'aimerais savoir s'il existe une fonction native équivalente a celle de php, ou si je dois le coder moi même?
J'ai besoin de faire ça, mais en C :
Code:number_format($laval,0,","," ");
Version imprimable
Bonjour à tous,
j'aimerais savoir s'il existe une fonction native équivalente a celle de php, ou si je dois le coder moi même?
J'ai besoin de faire ça, mais en C :
Code:number_format($laval,0,","," ");
Bonjour,
Ici, nous codons en C : il est donc très probable que nous ne connaissions pas les fonctions php, même les plus simples :zoubi:
Peux-tu nous expliquer ce que cette fonction (entrées, sorties) pour qu'on puisse trouver une correspondance avec une fonction du C stp ?
EDIT : par exemple, nous indiquer la page de manuel peut suffire : http://php.net/manual/fr/function.number-format.php
Je pense que la fonction C qui se rapprochera le plus est http://man.developpez.com/man3/sprintf.3.php
Effectivement sprintf permet de formater des nombres, cependant je ne pense pas qu'elle permette de modifier les séparateurs (celui du point décimal et celui des milliers) comme le fait number_format.
Pour celà j'ai bien peur que le plus simple soit encore de modifier la localisation par exemple en utilisant setlocale http://man.developpez.com/man3/setlocale.3.php
Je ne crois pas non plus qu'elle soit capable de faire ça. Je ne connaissais pas setlocale(), je viens d'essayer :
Ca m'affiche bien f = 100000,76500.Code:
1
2
3
4
5
6 #include <locale.h> double f = 100000.765; char str[100]; setlocale(LC_NUMERIC, ""); // utiliser la 'locale' de l'environnement, pour moi FR je suppose sprintf(str, "%10.5f", f); printf("f = %s", str);
Pour le séparateur de milliers en revanche, je n'ai pas vu comment faire. :oops:
Bonjour,
modifier la localisation va modifier le comportement de toute une famille de fonctions (*printf, *scanf, ...). Ce comportement peut être souhaité ; en revanche dans l'éventualité où ne désire qu'afficher pontuellement une sortie sous cette forme, tout en gardant les comportements par défaut des autres fonctions, autant écrire une fonction adéquate.
Merci beaucoup,
Je vais essayer vos différentes propositions et je vous reviens.
Les locales sont prévues pour permettre de gérer un séparateur de groupes, mais il n'y a rien pour définir ses propres règles, on ne peut pas modifier le résultat de localeconv. (POSIX a localedef, mais c'est un exécutable destiné à permettre d'ajouter ses règles au système, c'est un peu différent).