Добавить в цитаты Настройки чтения

Страница 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 &lt;= 1.0;</b>

<b>                     theta = theta +0.1) {</b>

<b>      Console.WriteLine(&quot;Синус угла &quot; + theta +</b>

<b>                        &quot; i равен &quot; + Math.Sin(theta));</b>

<b>      Console.WriteLine(&quot;Косинус угла &quot; + theta +</b>

<b>                        &quot; равен &quot; + Math.Cos(theta));</b>

<b>      Console.WriteLine(&quot;Тангенс угла &quot; + theta +</b>

<b>                        &quot; равен &quot; + 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(&quot;Цена со скидкой: $&quot; + 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(&quot;Первоначальные капиталовложения: $&quot; + amount);</b>