Loading...
Flyer avatar Flyer 150 Точки

[C# Basics] Форматиране на числа

Здравейте. Тъй като работата с числа в програнирането е често явление, тук ще опиша как може да се форматиратират, така че да придобият подходящ за презентация вид.

За да форматирате числова стойност в string, трябва да използвате Placehoder-и.

Какво е Placehoder?

Пример:

int age = 23;
Console.WriteLine("I am {0} years old.", age); // output: I am 23 years old.

В примера по-горе се вижда, че "{0}" заема стойността на променливата "age".


Може да използвате повече от един placeholder, като след всеки един цифрата в него нараства с едно:

int age = "23";
string name = "Pesho";
Console.WriteLine("I am {0} years old and my name is {1}.", age, name);

 

Формати за числа.

За примера ще използвам дробното число: 3.6543210

 

Placehoder                                       

Output:
(out of: 3.6543210)                                      

Description

{0:0}

4 Взима цялото число, като го закръгля нагоре.

 
{0:0.0}

3.7 Взима цялото число и една цифра след
десетичната запетая, закръглена нагоре.

{0:00.0}

03.7 Взима две цифри от цялото число
(ако няма добавя 0), и едно след десетичната запетая.


{0:1.##}

3.65 Взима цялото число, и две цифри след
десетичната заперая, ако има такива.

{0, 10}

          3.6543210 Премества числото с 10 символа вдясно.

 
{0:My number is 0.0}
     

My number is 3.7 Вмъква текст преди числото.

{0:P}

365,43 % Представя числото в проценти.


{0:E}

3,654321E+000 Представя числото в експоненциална нотация.

{0:C}

3,65 лв. Представя числото като валута, спрямо регионалните настройки.


{0:X}

format exeption                   Представя числото в шестнадесетична бройна система.

 

Notice: Забележете, че в последния пример, числото няма да бъде представено, тъй като този формат не работи за всички числа.

 

Това са основните форматиращи методи, като ще се радвам ако някой може да допълни с други :)

 

Успешно кодене!

Тагове:
22
Programming Basics
ViValDam avatar ViValDam 15 Точки

ха ха не знам кой ги е измислял тия формати, ама са извън всякаква логика ! Може би нарочно са направени така - да не можем да ги запомним или трудно да ги помним !

Мерси - пак много полезна информация , не повтаряща се с тази от лекциите !

1
ZloboMiR avatar ZloboMiR 50 Точки

{0:C}

365,43 % Представя числото в проценти.
     

{0:C}

3,65 лв. Представя числото като валута, спрямо регионалните настройки.

 

Тези леко ме смущават със своята еднаквост. 

3
a_rusenov avatar a_rusenov 1103 Точки

Да, процентът трябва да е с P

1
Flyer avatar Flyer 150 Точки

Поправено е, Благодаря!

1
coaster avatar coaster 412 Точки

Полезна и подробна информация! :)
Искам да добавя, че има и метод на класа Math за закръгляне на числа:

Math.Round();

1
rado84 avatar rado84 1 Точки

@Flyer, в един от плейсхолдърите май си допуснал грешка. В последната задача, която решавах трябваше да използвам плейсхолдър и така установих, че {0:1.##} изкарва числото с една единица отпред. За да изкара само числото със съответния брой символи след десетичната запетая, трябва да е {0:0.##}.

Резултатът излезе правилно (25) едва, когато направих плейсхолдъра да е {0:0.###}. Ако искаш, мога да ти дам целия код на програмата, за да го тестваш сам.

0
milenski1989 avatar milenski1989 2 Точки

Това забелязах и аз преди 1 час, че ми изкарва резултата с 1-ца отпред :)

0
triset avatar triset 1 Точки

Благодаря за инфото, събрано и ситематизирано от колегата @Flyer.

Полезно е и ни подарява много време, понеже като почнеш един по един да ги търсиш тези методи за работа с числа / функции е направо лудница.

Да, наистина да покаже две цифри след десетичната запетая на числото се ползва  {0:0.##} .

 

0
milenski1989 avatar milenski1989 2 Точки

За определен брой цифри след десетичната запетая, използвам {0:FX}, където X е броят цифри след запетаята. Лесно и кратко.

0
AleksanderKostadinov avatar AleksanderKostadinov 12 Точки

Всъщност в солюшъна на задачата имаше закръгляне нагоре : Маth.Ceiling(). Но закръгля само до цяло число.

 

0
25/08/2016 13:29:07
Leprikona avatar Leprikona 108 Точки

И още една добавка:

може и по този начин: {0:f...}, където f... е поредната цифра, до която искате да се форматира, и ако числото след нея е по-голямо или равно на 5, я повишава с една единица:

напр.: ако искате числото 1.23456 да се форматира до 3-ия знак ще изглежда така: {0:f3} и резултатът ще е 1.235

0
15/09/2016 16:44:42
Stradjazz avatar Stradjazz 30 Точки

Благодаря за полезната компилация!

0
stanchev1 avatar stanchev1 122 Точки

Мерси за информацията.

0
RadioDr avatar RadioDr 7 Точки

Искрено пожелавам на колегата Flyer да попадне на също толкова грешно и заблуждаващо нещо, като това, което е написал само за да трупне малко точки в ситуация, когато наистина нещо му трябва. Например в ситуация да се опита да разбере кой е гейта за неговия полет на език, който само подозира. Благодаря на останалите колеги за търпението да поправят грешките :) :)

-3
MilenaAdzhemova avatar MilenaAdzhemova 50 Точки

Как се закръгля до цяло число,но надолу?

0
krasi1105 avatar krasi1105 380 Точки

Math.Floor() закръгля надолу, Math.Truncate() закръгля към 0. Тук има по- детайлно обяснение.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.