Округление 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д