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

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

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

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

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

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

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


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

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

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