0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 9
1

Добавление double в list без округления

18.11.2015, 11:25. Показов 879. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При добавлении в лист
C#
1
2
3
 realX.Add(x);
                realY.Add(y);
                realZ.Add(z);
значения округляются, как этого избежать?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
using System;
using System.Collections.Generic;
using System.IO;
 
namespace Lab4_MCA
{
    class Program
    {
 
        static public double FY(double x, double y, double z)
        {
            return (-3 * y + 4 * z + 2 * x);
        }
   
        static public double FZ(double x, double y, double z)
        {
            return (x + y + z);
        }
 
        static public double realFY(double x)
        {
            return (14 * (1 - Math.Exp(-x)) - 2 * x * (3 + 4 * Math.Exp(-x)));
        } 
        static public double realFZ(double x)
        {
            return (-20 * Math.Exp(2 * x) + 8 * Math.Exp(3 * x) + 3 * Math.Exp(x) + 12 * x + 10);
        }
 
        static void Main()
        {
            List<double> X = new List<double>();
            List<double> Y = new List<double>();
            List<double> Z = new List<double>();
            List<double> realX = new List<double>();
            List<double> realY = new List<double>();
            List<double> realZ = new List<double>();
            double a = 0.0, b = 1.0;
            double y0 = 0.0;
            double z0 = 1.0;
            double step1 = 0.2;
            double step2 = 0.1;
            
            double y = y0;
            double z = z0;
            for (double x = a; x <= b; x += step1)
            {
                X.Add(x);
                Y.Add(y);
                Z.Add(z);
                y = y0 + step1* FY(x, y0, z0);
                z = z0 + step1* FZ(x, y0, z0);
                y0 = y;
                z0 = z;
            }
            y0 = 0.0;
            z0 = 1.0;
            y = y0;
            z = z0;
            for (double x = a; x <= b; x += step2)
            {
                y = realFY(x);
                z = realFZ(x);
                realX.Add(x);
                realY.Add(y);
                realZ.Add(z);
            }
            //StreamWriter writer = new StreamWriter("res.txt");
            for (int i = 0; i < X.Count; i++)
            {
                Console.WriteLine((X[i]).ToString(), Y[i].ToString(), Z[i].ToString());
                //  writer.Write((X[i]).ToString(), Y[i].ToString(), Z[i].ToString());
            }
            for (int i = 0; i < X.Count; i++)
            {
                Console.WriteLine((realX[i]).ToString(), (realY[i]).ToString(), (realZ[i]).ToString());
                // writer.Write((realX[i]).ToString(), (realY[i]).ToString(), (realZ[i]).ToString());
            }
           // writer.Close();
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2015, 11:25
Ответы с готовыми решениями:

Double с точностью после запятой, но БЕЗ округления
Надо выполнить некоторые вычисления с точностью после запятой, но из-за округления при...

Вывести double без округления
Рассматриваю пример. public string Square(int a = 13, int h = 3) { double...

Linq преобразование List<List<double>> в List<Array>
Доброго времени суток, данный код нужно преобразовать linq выражениями и дописать выборку из ...

Функция округления double
Как в С++ округлить double до int? С помощью какой функции?

1
Эксперт .NET
17350 / 12759 / 3340
Регистрация: 17.09.2011
Сообщений: 21,039
18.11.2015, 12:21 2
Цитата Сообщение от eXe1en7 Посмотреть сообщение
При добавлении в лист значения округляются
Округляется только строковое представление числа при выводе в консоль, а не при добавлении в список.

Цитата Сообщение от eXe1en7 Посмотреть сообщение
как этого избежать?
При переводе в строку используйте форматирование.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2015, 12:21
Помогаю со студенческими работами здесь

Ошибка округления при использовании float или double
Да-да, избитая тема. Понятно, что любое нецелое число может быть представленно в современных...

Как узнать размерность внутреннего вектора в массиве List<List<Double>>?
Добрый вечер! Уважаемые, подскажите пожалуйста, как узнать размерность внутренних строк в...

Перевод List<List<double>> в double[][]
Есть ли короткая запись перевода List&lt;List&lt;double&gt;&gt; в double? Я имею в виду перевод без цикла,...

Работат с листом листов (List<List<double>>)
Имеет ли смысл такая конструкция List&lt;List&lt;double&gt;&gt;? Экземпляр-то создается, но немного подвис я,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru