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.Intl6 short
System.Int32 int
System.Int64 long
System.Ulntl6 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
Каждая из этих структур содержит одинаковое количество членов. В табл. 21.2 для примера перечислены члены структуры Int32. Аналогичные члены в виде методов имеются и у других структур, за исключением целочисленного типа, который они представляют.
Помимо перечисленных выше методов, в структурах целочисленных типов данных определены следующие поля типа const.
MaxValue
MinValue
В каждой структуре эти поля содержат наибольшее и наименьшее значения, допустимые для данных соответствующего целочисленного типа.
Во всех структурах целочисленных типов данных реализуются следующие интерфейсы: IComparable, IComparable, IConvertible, IFormattableи IEquatable, где параметр обобщенного типа Т заменяется соответствующим типом данных. Например, в структуре Int32вместо Т подставляется тип int.
Таблица 21.2. Методы поддерживаемые структурой int
Читать дальше