Округление double до 9 знака - C#
Формулировка задачи:
Здравствуйте. Появилась проблема при округлении результата при выполнении математической формулы.
Задача - написать программу, которая вычисляет длину дуги, путем аппроксимации малых отрезков, концы, которых расположены на заданной кривой y=x*x. В области 0<=x<=1. Единственный параметр, который передается методу - это на какое количество одинаковых интервалов разобьется 0<=x<=1, т.е. количество отрезков, которые будут находиться на кривой.
Вот, листинг кода, написанного мной.
Собственно, проблема такая - при передаче n=10, результат предполагается 1.478197397d, но получается 1.0d.
При округлении до других знаков, эта ошибка не появляется. Если инициализировать length = 1, то проблемы тоже нет, результат получается 2.478197397d.
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);
}
}Решение задачи: «Округление double до 9 знака»
textual
Листинг программы
int n