Pourquoi 0.ToString("#.##")
renvoie une chaîne vide? Ne devrait-il pas être 0.00
ou au moins 0 ?
114
#
dans le format de chaîne, indiquez 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 passés à cette méthode.
Parce que dans une chaîne de format, le
#
est utilisé pour signifier un espace réservé de caractère 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
Fait intéressant, si vous faites cela:
0.ToString("#.0#");
vous obtenez:.0
Si vous voulez les trois chiffres:
0.ToString("0.00");
produit:0.00
Des commentaires à cette réponse, votre argument semble être,
La réponse est simple: vous avez le choix de la manière dont vous souhaitez l'afficher. C'est à cela que servent les chaînes de format personnalisées. Vous avez simplement choisi la chaîne de format incorrecte pour vos besoins .
la source
Selon la documentation sur le Digit Placeholder .
Si vous voulez que le zéro s'affiche, utilisez le Zero PlaceHolder
la source
Essaye ça
0.ToString("#,##; #,##;0")
https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings#SectionSeparator
La première section s'applique aux valeurs positives, la deuxième section s'applique aux valeurs négatives et la troisième section s'applique aux zéros.
la source
Utilisez-le comme ceci:
0
après#
veillera à définir la valeur de sortie sur 0 si la valeur est 0 sinon elle affichera la valeur. Alors0.0.ToString("#0.##")=0.00
et10.ToString("#.##")=10.00
la source