Juste une petite fonction qui permet formater une valeur numérique

Anonyme
dim, 01/12/2020 - 15:15
Il y a parfois des problème pour afficher des valeurs numériques dont la longueur varie en fonction du nombre et lorsque on veut avoir sous la console série par exemple un défilement stable en position d'une valeur, il est agréable de pouvoir formater cette valeur sous une forme de chaîne de caractères avec une taille constante tant au niveau des décimales que du nombre total de caractère pour ce faire voici une fonction que vous pouvez utiliser, ce n'est certainement pas la plus parfaite mais elle fonctionne. Voici cette fonction :
String StringF(float Valeur, int Dec, int Lg) {
/* Cette fonction converti une valeur numérique en chaîne de caractères avec :
Dec décimales et une longueur mini de Lg caractères.
Si la chaîne est plus grande que le paramètre 'Lg' la chaîne est retournée entière */String sValeur = String(Valeur, Dec);
Lg = Lg - sValeur.length();
while (Lg > 0) {
sValeur = " " + sValeur;
Lg--;
}
return (sValeur);
}
Pour l'utiliser voici un exemple :
StringF( 3/7, 2, 6 ) renvoi : "··0.43"
StringF( 3/7, 4, 6 ) renvoi : "0.4286"
StringF( 30/7, 2, 6 ) renvoi : "··4.29"
StringF( 300/7, 2, 6 ) renvoi : "·42.86"
StringF(3000/7,2,6) renvoi : "428.57"
Donc toujours 6 caractères de long ! (j'ai remplacé les espaces par "·" pour être plus explicite .
Si vous en avez l'utilité n'hésitez pas à la mettre dans votre code.