¿Por qué 0.ToString("#.##")
renvoie une chaîne vide ? Ne devrait-il pas s'agir de 0.00
o au moins 0 ?
Je ne comprends toujours pas pourquoi le résultat n'est pas égal à 0. Parce que 0 n'est pas optionnel. Est-ce que vide a un sens ?
¿Por qué 0.ToString("#.##")
renvoie une chaîne vide ? Ne devrait-il pas s'agir de 0.00
o au moins 0 ?
#
dans le format de la chaîne indiquent que la valeur est facultative. Si vous souhaitez obtenir la sortie 0.00
vous avez besoin des éléments suivants :
0.ToString("0.00");
Voir ici pour les formats numériques personnalisés qui peuvent être transmises à cette méthode.
Parce que dans une chaîne de format, l'élément #
est utilisé pour signifier un caractère de remplacement facultatif ; il n'est utilisé que si nécessaire pour représenter le nombre.
Si vous faites cela à la place : 0.ToString("0.##");
vous obtenez : 0
Il est intéressant de noter que si vous faites cela : 0.ToString("#.0#");
vous obtenez : .0
Si vous voulez les trois chiffres : 0.ToString("0.00");
produit : 0.00
D'après les commentaires de cette réponse, votre argument semble être le suivant,
il devrait afficher "0", car pourquoi quelqu'un voudrait-il voir une chaîne vide si la valeur numérique est 0 ?
La réponse est simple : Vous avez le choix la façon dont vous souhaitez qu'elle soit affichée. C'est à cela que servent les chaînes de formatage personnalisées. Vous avez simplement choisi la chaîne de formatage qui ne correspond pas à vos besoins .
D'après la documentation sur le Caractère de remplacement du chiffre .
Si la valeur formatée comporte un chiffre à l'endroit où le "#" apparaît dans la chaîne de format, ce chiffre est copié dans la chaîne de résultat. Sinon, rien n'est rien n'est stocké à cette position dans la chaîne de résultat. Ce spécificateur n'affiche jamais le caractère "0" s'il ne s'agit pas d'un chiffre significatif, même si "0" est le seul chiffre de la chaîne. Il affichera Il affiche le caractère '0' s'il s'agit d'un chiffre significatif dans le nombre affiché. La chaîne de format "##" permet d'arrondir la valeur au chiffre le plus proche précédant la décimale. la décimale, l'arrondi à partir de zéro étant toujours utilisé. Par exemple, en formatant 34,5 avec "##", on obtient la valeur 35.
Si vous voulez que le zéro s'affiche, utilisez la fonction Zero PlaceHolder
Si la valeur à formater comporte un chiffre à l'endroit où le "0" apparaît dans la chaîne de format, ce chiffre est copié dans la chaîne de résultat. La position du 0" le plus à gauche avant la virgule et le "0" le plus à droite après la virgule détermine la plage de chiffres qui sont toujours présents dans la chaîne de résultats.
Le spécificateur "00" fait en sorte que la valeur soit arrondie au chiffre le plus proche précédant la décimale, l'arrondi à partir de zéro étant toujours utilisé. Par exemple, le formatage de 34.5 avec "00" donnera la valeur 35.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.