C# 4.0 полное руководство - 2011 - Герберт Шилдт
Шрифт:
Интервал:
Закладка:
первоначальные капиталовложения =
будущая стоимость / (1 + норма прибыли)количество лет
В вызове метода Pow () необходимо указывать аргументы типа double, поэтому норма прибыли и количество лет задаются в виде значений типа double. А первоначальные капиталовложения и будущая стоимость задаются в виде значений типа decimal.
/* Рассчитать первоначальные капиталовложения, необходимые для получения заданной будущей стоимости, исходя из годовой нормы прибыли и количества лет. */
using System;
class Initiallnvestment { static void Main() {
decimal initInvest; // первоначальные капиталовложения
decimal futVal; // будущая стоимость
double numYears; // количество лет
double intRate; // годовая норма прибыли
string str;
Console.Write("Введите будущую стоимость: "); str = Console.ReadLine(); try {
ftitVal = 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;
}
initlnvest =
futVal / (decimal) Math.Pow(intRate+1.0, numYears);
Console.WriteLine("Необходимые первоначальные капиталовложения: {0:C}", initlnvest);
}
}
Ниже приведен один из возможных результатов выполнения этой программы.
Введите будущую стоимость: 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. Тип
I Format Provide г вкратце описывается далее в этой главе, а тип NumberStyles представляет собой перечисление из пространства имен System.Globalization. Вопросы форматирования подробнее рассматриваются в главе 22.
Структуры целочисленных типов данных
Ниже перечислены структуры целочисленных типов данных.
Byte
SByte
I n 116
Uintl6
Int32
UInt32
Int64
Uint64
Каждая из этих структур содержит одинаковое количество членов. В табл. 21.2 для примера перечислены члены структуры Int32. Аналогичные члены в виде методов имеются и у других структур, за исключением целочисленного типа, который они представляют.
Помимо перечисленных выше методов, в структурах целочисленных типов данных определены следующие поля типа const.
MaxValue
MinValue
В каждой структуре эти поля содержат наибольшее и наименьшее значения, допустимые для данных соответствующего целочисленного типа.
Во всех структурах целочисленных типов данных реализуются следующие интерфейсы: IComparable, IComparable<T>, IConvertible, IFormattable
и IEquatable<T>, где параметр обобщенного типа Т заменяется соответствующим типом данных. Например, в структуре Int32 вместо Т подставляется тип int.
Метод
Назначение
public int
Сравнивает числовое значение вызывающего объекта со
CompareTo(object value)
значением value. Возвращает нуль, если сравниваемые значения равны; отрицательное значение, если вызывающий объект имеет меньшее значение; и, наконец, положительное значение, если вызывающий объект имеет большее значение
public int CompareTo(int
Сравнивает числовое значение вызывающего объекта со
value)
значением value. Возвращает нуль, если сравниваемые значения равны; отрицательное значение, если вызывающий объект имеет меньшее значение; и, наконец, положительное значение, если вызывающий объект имеет большее значение
public override bool
Возвращает логическое значение true, если значе
Equals(object obj)
ние вызывающего объекта равно значению параметра
obj
public bool Equals(int
Возвращает логическое значение true, если значе
obj)
ние вызывающего объекта равно значению параметра
obj
public override int
Возвращает хеш-код для вызывающего объекта
GetHashCode()
public TypeCode
Возвращает значение перечисления TypeCode для экви
GetTypeCode()
валентного типа. Например, для структуры Int32 возвращается значение TypeCode. Int32
public static int
Возвращает двоичный эквивалент числа, заданного
Parse(string s)
в виде символьной строки s. Если числовое значение не представлено в строке так, как определено в структуре данного типа, то генерируется исключение
public static int
Возвращает двоичный эквивалент числа, заданного
Parse(string s,
в виде символьной строки s, с использованием фор
IformatProvider
матов данных, характерных для конкретной культурной
provi der)
среды и определяемых параметром provider. Если числовое значение не представлено в строке так, как определено в структуре данного типа, то генерируется исключение
public static int
Возвращает двоичный эквивалент числа, заданного
Parse(string s,
в виде символьной строки s, с использованием дан
NumberStyles styles)
ных о стилях, определяемых параметром styles. Если числовое значение не представлено в строке так, как определено в структуре данного типа, то генерируется исключение
Метод
Назначение
public static int
Возвращает двоичный эквивалент числа, заданного в виде
Parse(string s,
строки символьной s, с использованием данных о стилях,
NumberStyles styles,
определяемых параметром styles, а также форматов
IformatProvider
данных, характерных для конкретной культурной среды
provi der)
и определяемых параметром provider. Если числовое значение не представлено в строке так, как определено в структуре данного типа, то генерируется исключение
public override
string
Возвращает строковое представление значения вызы
ToString()
вающего объекта
public string
Возвращает строковое представление значения вызы
ToString(string
format)