Cześć,
mam jakieś liczby typu int i chciałbym je zamienić na string w taki sposób, aby były poprzedzone zerami. Mam jednak wątpliwość jak działa formatowanie z wykorzystaniem znaku "#" w metodzie int.ToString().
Zakładając, ze max liczba to 9999 to powinien zrobić operację liczba.ToString("0###") lub liczba.ToString("000#") - obie wersje działają tak samo (prawidłowo), ale nie wiem czy obie są prawidłowe :-/. Dodatkowo wersja liczba.ToString("####") już nie dodaje zer przed liczbę.
Mam więc pytanie jaka jest między nimi różnica i jak jest prawidłowo?
Z góry dziękuję.
0
3
https://docs.microsoft.com/pl-pl/dotnet/standard/base-types/formatting-types
https://docs.microsoft.com/pl-pl/dotnet/standard/base-types/standard-numeric-format-strings
https://docs.microsoft.com/pl-pl/dotnet/standard/base-types/custom-numeric-format-strings
https://docs.microsoft.com/pl-pl/dotnet/standard/base-types/custom-numeric-format-strings#SpecifierD
2
Rozważ to:
Console.WriteLine((37778.32).ToString("####,###0.##"))
// 37,778.32
- cyfra lub nic
0 - cyfra lub 0 jak cyfry nie ma
, i . - separator miejsc tysięcznych i dziesiętnych
Jak widać na przykładzie # przydaje się jak trzeba modelować separatory.
Wydaje mi się że użycie 0###
jest nieprawidłowe, lepiej napisać 0000
.
0
Dziękuję @0xmarcin!
Pozostałym osobom również dziękuję, aczkolwiek wklejanie linków to przeważnie słaba forma pomocy.