Страница 19 из 502
<b>using System;</b>
<b>class Trigonometry { </b>
<b> static void Main() {</b>
<b> Double theta; // угол в радианах</b>
<b> for(theta = 0.1; theta <= 1.0;</b>
<b> theta = theta +0.1) {</b>
<b> Console.WriteLine("Синус угла " + theta +</b>
<b> " i равен " + Math.Sin(theta));</b>
<b> Console.WriteLine("Косинус угла " + theta +</b>
<b> " равен " + Math.Cos(theta));</b>
<b> Console.WriteLine("Тангенс угла " + theta +</b>
<b> " равен " + Math.Tan(theta));</b>
<b> Console.WriteLine();</b>
<b> }</b>
<b> }</b>
<b>}</b>
Ниже приведена лишь часть результата выполнения данной программы.
<b>Синус угла 0.1 равен 0.0998334166468282 </b>
<b>Косинус угла 0.1 равен 0.995004165278026 </b>
<b>Тангенс угла 0.1 равен 0.100334672085451</b>
<b>Синус угла 0.2 равен 0.198669330795061 </b>
<b>Косинус угла 0.2 равен 0.980066577841242 </b>
<b>Тангенс угла 0.2 равен 0.202710035508673</b>
<b>Синус угла 0.3 равен 0.29552020666134 </b>
<b>Косинус угла 0.3 равен 0.955336489125606 </b>
<b>Тангенс угла 0.3 равен 0.309336249609623</b>
Для вычисления синуса, косинуса и тангенса угла в приведенном выше примере были использованы стандартные методы Math.Sin(), Math.Cos() и Math.Tan(). Как и метод Math.Sqrt(), эти тригонометрические методы вызываются с аргументом типа double и возвращают результат того же типа. Вычисляемые углы должны быть указаны в радианах.
Десятичный тип данных
Вероятно, самым интересным среди всех числовых типов данных в C# является тип decimal, который предназначен для применения в финансовых расчетах. Этот тип имеет разрядность 128 бит для представления числовых значений в пределах от 1Е-28 до 7,9Е+28. Вам, вероятно, известно, что для обычных арифметических вычислений с плавающей точкой характерны ошибки округления десятичных значений. Эти ошибки исключаются при использовании типа decimal, который позволяет представить числа с точностью до 28 (а иногда и 29) десятичных разрядов. Благодаря тому что этот тип данных способен представлять десятичные значения без ошибок округления, он особенно удобен для расчетов, связанных с финансами.
Ниже приведен пример программы, в которой тип decimal используется в конкретном финансовом расчете. В этой программе цена со скидкой рассчитывается на основании исходной цены и скидки в процентах.
<b>// Использовать тип decimal для расчета скидки.</b>
<b>using System;</b>
<b>class UseDecimal { </b>
<b> static void Main() { </b>
<b> decimal price; </b>
<b> decimal discount; </b>
<b> decimal discounted_price;</b>
<b> // Рассчитать цену со скидкой, </b>
<b> price = 19.95m;</b>
<b> discount = 0.15m; // норма скидки составляет 15% </b>
<b> discounted_price = price - ( price * discount);</b>
<b> Console.WriteLine("Цена со скидкой: $" + discounted_price);</b>
<b> }</b>
<b>}</b>
Результат выполнения этой программы выглядит следующим образом.
<b>Цена со скидкой: $16.9575</b>
Обратите внимание на то, что значения констант типа decimal в приведенном выше примере программы указываются с суффиксом m. Дело в том, что без суффикса m эти значения интерпретировались бы как стандартные константы с плавающей точкой, которые несовместимы с типом данных decimal. Тем не менее переменной типа decimal можно присвоить целое значение без суффикса т, например 10. (Подробнее о числовых константах речь пойдет далее в этой главе.)
Рассмотрим еще один пример применения типа decimal. В этом примере рассчитывается будущая стоимость капиталовложений с фиксированной нормой прибыли в течение ряда лет.
<b>/*</b>
<b>Применить тип decimal для расчета будущей стоимости капиталовложений.</b>
<b>*/</b>
<b>using System;</b>
<b>class FutVal {</b>
<b> static void Main() { </b>
<b> decimal amount; </b>
<b> decimal rate_of_return; </b>
<b> int years, i;</b>
<b> amount = 1000.0M; </b>
<b> rate_of_return = 0.07M; </b>
<b> years = 10;</b>
<b> Console.WriteLine("Первоначальные капиталовложения: $" + amount);</b>