Округление double до 9 знака - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Появилась проблема при округлении результата при выполнении математической формулы. Задача - написать программу, которая вычисляет длину дуги, путем аппроксимации малых отрезков, концы, которых расположены на заданной кривой y=x*x. В области 0<=x<=1. Единственный параметр, который передается методу - это на какое количество одинаковых интервалов разобьется 0<=x<=1, т.е. количество отрезков, которые будут находиться на кривой. Вот, листинг кода, написанного мной.
Листинг программы
  1. using System;
  2. public class ArcParabLen
  3. {
  4. // n number of intervals
  5. public static double lenCurve(int n)
  6. {
  7. double length = 0.0d;
  8. for (int i = 1; i<=n; i++)
  9. {
  10. length += Math.Sqrt(Math.Pow(1/n, 2)+Math.Pow(Math.Pow(i/n, 2)-Math.Pow((i-1)/n, 2), 2));
  11. }
  12. return Math.Round(length,9);
  13. }
  14. }
Собственно, проблема такая - при передаче n=10, результат предполагается 1.478197397d, но получается 1.0d. При округлении до других знаков, эта ошибка не появляется. Если инициализировать length = 1, то проблемы тоже нет, результат получается 2.478197397d.

Решение задачи: «Округление double до 9 знака»

textual
Листинг программы
  1. int n

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут