Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «ПолноС руководство. Π‘# 4.0Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 176

Автор Π¨ΠΈΠ»Π΄Ρ‚ Π“Π΅Ρ€Π±Π΅Ρ€Ρ‚

НСсмотря Π½Π° всС удобства встраивания ΠΊΠΎΠΌΠ°Π½Π΄ форматирования Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° WriteLine(), ΠΈΠ½ΠΎΠ³Π΄Π° всС ΠΆΠ΅ трСбуСтся ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΅Π΅ сразу. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°Ρ€Π°Π½Π΅Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вывСсти ΠΈΡ… Π² дальнСйшСм Π½Π° выбранноСустройство. Вакая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ особСнно ΠΏΠΎΠ»Π΅Π·Π½Π° для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² срСдС сграфичСским ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Windows, Π³Π΄Π΅ Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ наконсоль примСняСтся Ρ€Π΅Π΄ΠΊΠΎ, Π° Ρ‚Π°ΠΊΠΆΠ΅ для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° Π²Π΅Π±-страницу.

Π’ΠΎΠΎΠ±Ρ‰Π΅ говоря, ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ строковоС прСдставлСниС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ двумя способами. Один ΠΈΠ· Π½ΠΈΡ… состоит Π² ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈΠΌΠ΅Ρ‚ΠΎΠ΄Π° String.Format(), Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” Π² ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ спСцификатора Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΡƒToString(), относящСмуся ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· встроСнных Π² Π‘# числовых Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Обаспособа Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄Π°Π»Π΅Π΅ ΠΏΠΎ порядку.ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° String.Format() для форматирования Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Для получСния ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ значСния достаточно Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Format(),ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² классС String, Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΌΠ΅. ВсС Ρ„ΠΎΡ€ΠΌΡ‹ этого мСтодапСрСчислСны Π² Ρ‚Π°Π±Π». 22.5. ΠœΠ΅Ρ‚ΠΎΠ΄ Format() Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ WriteLine(), Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ строку, Π° Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΅Π΅ наконсоль.

Π’Π°Π±Π»ΠΈΡ†Π° 22.5. Π€ΠΎΡ€ΠΌΡ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Format()ΠœΠ΅Ρ‚ΠΎΠ΄ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅public static string Format(string format, object arg0)Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ arg0 Π² соотвСтствии с ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ форматирования, которая содСрТится Π² строкС format. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ копию строки format, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π° форматирования Π·Π°ΠΌΠ΅Π½Π΅Π½Π° ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈpublic static string Format(string format, object arg0, object arg1)Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ arg0 Π² соотвСтствии с ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ форматирования, содСрТащСйся Π² строкС format, Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ arg1 β€” Π² соотвСтствии со Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ копию строки format, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ форматирования Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈpublic static string Format(string format, object arg0, object arg1, object arg2)Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ arg0, arg1 ΠΈ arg2 ΠΏΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ форматирования, содСрТащимся Π² строкС format. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ копию строки format, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ форматирования Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈpublic static string Format(string format, params object[] args)Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ значСния, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π² массивС args, Π² соотвСтствии с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ форматирования, содСрТащимися Π² строкС format. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ копию строки format, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ форматирования Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈpublic static string Format(IFormatProvider provider, string format, params object[] args)Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ значСния, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π² массивС args, Π² соотвСтствии с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ форматирования, содСрТащимися Π² строкС format, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ поставщик Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° provider. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ копию строки format, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ форматирования Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ форматирования, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ с Ρ†Π΅Π»ΡŒΡŽ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° String.Format(). Π­Ρ‚ΠΎΡ‚Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΄Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ.// Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ String.Format() для форматирования Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.using System;class FormatDemo { static void Main() { double v = 17688.65849; double v2 = 0.15; int x = 21; string str = String.Format("{0:F2}", v); Console.WriteLine(str); str = String.Format("{0:N5}", v); Console.WriteLine(str); str = String.Format("{0:e}", v); Console.WriteLine(str); str = String.Format("{0:r}", v); Console.WriteLine(str); str = String.Format("{0:p}", v2); Console.WriteLine(str); str = String.Format("{0:X}", x); Console.WriteLine(str); str = String.Format("{0:D12}", x); Console.WriteLine(str); str = String.Format("{0:C}", 189.99); Console.WriteLine(str); }}

Аналогично ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ WriteLine(), ΠΌΠ΅Ρ‚ΠΎΠ΄ String.Format() позволяСт Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒΠ² свой Π²Ρ‹Π·ΠΎΠ² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкст вмСстС со спСцификаторами Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π² Π²Ρ‹Π·ΠΎΠ²Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ΠΎ нСсколько спСцификаторов Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° рассмотрим Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΡƒΡŽ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ сумму ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ чисСл ΠΎΡ‚ 1 Π΄ΠΎ 10.// Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ примСнСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Format().using System;class FormatDemo2 { static void Main() { int i; int sum = 0; int prod = 1; string str; /* ΠžΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ сумму ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ чисСл ΠΎΡ‚ 1 Π΄ΠΎ 10. */ for(i=1; i <= 10; i++) { sum += i; prod *= i; str = String.Format("Π‘ΡƒΠΌΠΌΠ°:{0,3:D} ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅:{1,8:D}", sum, prod); Console.WriteLine(str); } }}

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.Π‘ΡƒΠΌΠΌΠ°: 1 ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅: 1Π‘ΡƒΠΌΠΌΠ°: 3 ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅: 2Π‘ΡƒΠΌΠΌΠ°: 6 ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅: 6Π‘ΡƒΠΌΠΌΠ°: 10 ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅: 24Π‘ΡƒΠΌΠΌΠ°: 15 ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅: 120Π‘ΡƒΠΌΠΌΠ°: 21 ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅: 720Π‘ΡƒΠΌΠΌΠ°: 28 ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅: 5040Π‘ΡƒΠΌΠΌΠ°: 36 ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅: 40320Π‘ΡƒΠΌΠΌΠ°: 45 ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅: 362880Π‘ΡƒΠΌΠΌΠ°: 55 ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅: 3628800

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€.str = String.Format("Π‘ΡƒΠΌΠΌΠ°:{0,3:D} ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅:{1,8:D}", sum, prod);

Π’ этом ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ содСрТится Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Format() с двумя спСцификаторами Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°: ΠΎΠ΄Π½ΠΈΠΌ β€” для суммы (Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ sum), Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ β€” для произвСдСния(Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ prod). ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ Π² Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° WriteLine(), ΠΈ Ρ‡Ρ‚ΠΎ Π² Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Format() Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкст, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, строка "Π‘ΡƒΠΌΠΌΠ°: ". Π­Ρ‚ΠΎΡ‚ тСкстпСрСдаСтся Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ΠΈ становится Ρ‡Π°ΡΡ‚ΡŒΡŽ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ строки.ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ToString() для форматирования Π΄Π°Π½Π½Ρ‹Ρ…

Для получСния ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ строкового прСдставлСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния любого числового Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ соотвСтствуСт встроСнная структура, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€Int32 ΠΈΠ»ΠΈ Double, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ToString(). Π­Ρ‚ΠΎΠΉ Ρ†Π΅Π»ΠΈ слуТитпривСдСнная Π½ΠΈΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ToString().public string ToString("Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ строка")

Π’ этой Ρ„ΠΎΡ€ΠΌΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ToString() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строковоС прСдставлСниС Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ‚ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт спСцификатор "Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΡŽΡ‰Π°ΡΡΡ‚Ρ€ΠΎΠΊΠ°", ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ. НапримСр, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС ΠΊΠΎΠ΄Π° формируСтся строковоС прСдставлСниС значСния 188.99 Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π΄Π΅Π½Π΅ΠΆΠ½ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΡΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ спСцификатора Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π‘.string str = 189.99.ToString("Π‘");

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ спСцификатор Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° пСрСдаСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΡƒToString() нСпосрСдствСнно. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ встроСнных ΠΊΠΎΠΌΠ°Π½Π΄ форматирования, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Π²Ρ‹Π·ΠΎΠ²Π°Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² WriteLine() ΠΈ Format(), Π³Π΄Π΅ для этой Ρ†Π΅Π»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½ΠΎΠΌΠ΅Ρ€ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ ΡˆΠΈΡ€ΠΈΠ½Π° поля, Π² Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ToString()

достаточно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ спСцификатор Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°.НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ форматирования, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ с Ρ†Π΅Π»ΡŒΡŽ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ToString() для получСнияотформатированных строк. Π­Ρ‚ΠΎΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΄Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ.// Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ToString() для форматирования Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.using System;class ToStringDemo { static void Main() { double v = 17688.65849; double v2 = 0.15; int x = 21; string str = v.ToString("F2"); Console.WriteLine(str); str = v.ToString("N5"); Console.WriteLine(str); str = v.ToString("e"); Console.WriteLine (str); str = v.ToString("r"); Console.WriteLine(str); str = v2.ToString("p"); Console.WriteLine(str); str = x.ToString("X"); Console.WriteLine(str); str = x.ToString("D12"); Console.WriteLine(str); str = 189.99.ToString("C"); Console.WriteLine(str); }}ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° числовых Π΄Π°Π½Π½Ρ‹Ρ…

НСсмотря Π½Π° всю ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… спСцификаторов Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° числовых Π΄Π°Π½Π½Ρ‹Ρ…, Π² C# прСдоставляСтся Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ,Ρ‚.Π΅. свой собствСнный, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ срСдство, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ изобраТСния. Π‘Π²ΠΎΠΈΠΌ происхоТдСниСм Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ изобраТСния обязан Ρ‚ΠΎΠΌΡƒ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Ρƒ,Ρ‡Ρ‚ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ опрСдСляСт, задавая ΠΏΡ€ΠΈΠΌΠ΅Ρ€ внСшнСго Π²ΠΈΠ΄Π°(Ρ‚.Π΅. ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅) Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ упоминался Π² части Iэтой ΠΊΠ½ΠΈΠ³ΠΈ, Π° здСсь ΠΎΠ½ рассматриваСтся Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹-Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° числовых Π΄Π°Π½Π½Ρ‹Ρ