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