diff --git a/src/Chapter02.Tests/Listing02.09.Tests.cs b/src/Chapter02.Tests/Listing02.09.Tests.cs index fc739b86b..fd50eef7a 100644 --- a/src/Chapter02.Tests/Listing02.09.Tests.cs +++ b/src/Chapter02.Tests/Listing02.09.Tests.cs @@ -1,4 +1,4 @@ -using AddisonWesley.Michaelis.EssentialCSharp.Shared; +using System.Globalization; namespace AddisonWesley.Michaelis.EssentialCSharp.Chapter02.Listing02_09.Tests; @@ -8,19 +8,14 @@ public class ProgramTests [TestMethod] public void Main_WriteBooleanStatements() { - string netCoreApp2expected = -$@"False: {1.61803398874989} == {1.61803398874989} -True: {1.61803398874989} == {1.61803398874989}"; - - string expected = // netcoreapp3.0 and later -$@"True: {1.618033988749895} == {1.618033988749895} -True: {1.618033988749895} == {1.618033988749895}"; - - string netCoreVersion = NetCore.GetNetCoreVersion(); - if (string.Compare(netCoreVersion, "3")<0) - { - expected = netCoreApp2expected; - } + var number = 86540910.21; + string currentCultureString = number.ToString("C"); + string greekCultureString = number.ToString("C", CultureInfo.GetCultureInfo("el-GR")); + string expected = +$@"{number} +{currentCultureString} +True: {currentCultureString} == {currentCultureString} +{greekCultureString}"; IntelliTect.TestTools.Console.ConsoleAssert.Expect( expected, Program.Main); diff --git a/src/Chapter02/Listing02.09.FormattingUsingTheRFormatSpecifier.cs b/src/Chapter02/Listing02.09.FormattingUsingTheRFormatSpecifier.cs deleted file mode 100644 index cf5b85d72..000000000 --- a/src/Chapter02/Listing02.09.FormattingUsingTheRFormatSpecifier.cs +++ /dev/null @@ -1,24 +0,0 @@ -namespace AddisonWesley.Michaelis.EssentialCSharp.Chapter02.Listing02_09; - -public class Program -{ - public static void Main() - { - #region INCLUDE - // ... - const double number = 1.618033988749895; - double result; - string text; - - text = $"{number}"; - result = double.Parse(text); - Console.WriteLine($"{result == number}: {result} == {number}"); - - text = $"{number:R}"; - result = double.Parse(text); - Console.WriteLine($"{result == number}: {result} == {number}"); - - // ... - #endregion INCLUDE - } -} \ No newline at end of file diff --git a/src/Chapter02/Listing02.09.UsingStringFormat.cs b/src/Chapter02/Listing02.09.UsingStringFormat.cs new file mode 100644 index 000000000..fa18afa26 --- /dev/null +++ b/src/Chapter02/Listing02.09.UsingStringFormat.cs @@ -0,0 +1,32 @@ +namespace AddisonWesley.Michaelis.EssentialCSharp.Chapter02.Listing02_09; + +using System; +using System.Globalization; + +public class Program +{ + public static void Main() + { + #region INCLUDE + // ... + const double number = 86540910.21; + string currencyText; + + currencyText = $"{number}"; + Console.WriteLine(currencyText); + + currencyText = $"{number:C}"; + Console.WriteLine(currencyText); + + // Prove that string interpolation and the ToString method produce equivalent results with format specifiers + string toStringCurrencyText = number.ToString("C"); + Console.WriteLine($"{currencyText == toStringCurrencyText}: {currencyText} == {toStringCurrencyText}"); + + // el-GR represents the Greek locale code + toStringCurrencyText = number.ToString("C", CultureInfo.GetCultureInfo("el-GR")); + Console.WriteLine(toStringCurrencyText); + + // ... + #endregion INCLUDE + } +} \ No newline at end of file