Страница 348 из 502
<b> decimal futVal; // будущая стоимость</b>
<b> double numYears; // количество лет</b>
<b> double intRate; // годовая норма прибыли</b>
<b> string str;</b>
<b> Console.Write("Введите будущую стоимость: ");</b>
<b> str = Console.ReadLine();</b>
<b> try {</b>
<b> futVal = Decimal.Parse(str);</b>
<b> }</b>
<b> catch (FormatException exc) {</b>
<b> Console.WriteLine(exc.Message);</b>
<b> return;</b>
<b> }</b>
<b> Console.Write("Введите норму прибыли (например, 0.085): ");</b>
<b> str = Console.ReadLine();</b>
<b> try {</b>
<b> intRate = Double.Parse(str);</b>
<b> }</b>
<b> catch (FormatException exc) {</b>
<b> Console.WriteLine(exc.Message);</b>
<b> return;</b>
<b> }</b>
<b> Console.Write("Введите количество лет: ");</b>
<b> str = Console.ReadLine();</b>
<b> try {</b>
<b> numYears = Double.Parse(str);</b>
<b> }</b>
<b> catch (FormatException exc) {</b>
<b> Console.WriteLine(exc.Message);</b>
<b> return;</b>
<b> }</b>
<b> initInvest =</b>
<b> futVal / (decimal)Math.Pow(intRate + 1.0, numYears);</b>
<b> Console.WriteLine("Необходимые первоначальные капиталовложения: {0:C}", initInvest);</b>
<b> }</b>
<b>}</b>
Ниже приведен один из возможных результатов выполнения этой программы.
<b>Введите будущую стоимость: 10000</b>
<b>Введите норму прибыли (например, 0.085): 0.07</b>
<b>Введите количество лет: 10</b>
<b>Необходимые первоначальные капиталовложения: $5,083.49</b>
Структуры .NET, соответствующие встроенным типам значений
Структуры, соответствующие встроенным в C# типам значений, были представлены в главе 14, где они упоминались в связи с преобразованием строк, содержащих числовые значения в удобочитаемой форме, в эквивалентные двоичные значения. В этом разделе структуры .NET рассматриваются более подобно.
Имена структур .NET и соответствующие им ключевые слова, обозначающие типы значений в С#, перечислены в приведенной ниже таблице.
<b>Имя структуры в .NET </b><b>Имя типа значения в C#</b>
<b>System.Boolean </b><b>bool</b>
<b>System.Char </b><b>char</b>
<b>System.Decimal </b><b>decimal</b>
<b>System.Double </b><b>double</b>
<b>System.Single </b><b>float</b>
<b>System.Intl6 </b><b>short</b>
<b>System.Int32 </b><b>int</b>
<b>System.Int64 </b><b>long</b>
<b>System.Ulntl6 </b><b>ushort</b>
<b>System.UInt32 </b><b>uint</b>
<b>System.UInt64 </b><b>ulong</b>
<b>System.Byte </b><b>byte</b>
<b>System.Sbyte </b><b>sbyte</b>
Используя члены, определенные в этих структурах, можно выполнять операции над значениями простых типов данных. Все перечисленные выше структуры рассматриваются далее по порядку.
---------------------------
ПРИМЕЧАНИЕ
Некоторые методы, определенные в структурах, соответствующих встроенным в C# типам значений, принимают параметры типа IFormatProvider или NumberStyles. Тип
IFormatProvider вкратце описывается далее в этой главе, а тип NumberStyles представляет собой перечисление из пространства имен System.Globalization. Вопросы форматирования подробнее рассматриваются в главе 22.
---------------------------
Ниже перечислены структуры целочисленных типов данных.