С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Eumi
5 / 5 / 0
Регистрация: 12.06.2012
Сообщений: 58
#1

Функция округления чисел - C++

25.04.2013, 14:11. Просмотров 1522. Ответов 25
Метки нет (Все метки)

Здравствуйте, подскажите пожалуйста. Написала функцию округления цифр

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void RoundingFunction(double RoundingVariable, int& ResultVariable)
{
    double IntegerPart=0;
    ResultVariable=0;
    if (modf(abs(RoundingVariable),&IntegerPart)<=0.5)
    {
        if (RoundingVariable>0)
            ResultVariable=floor(RoundingVariable);
        else
            ResultVariable=ceil(RoundingVariable);
    }
    else
    {
        if (RoundingVariable>0)
            ResultVariable=ceil(RoundingVariable);
        else
            ResultVariable=floor(RoundingVariable);
    }
}
И вот мне интересно, возможен ли такой вариант, при вызове функции передать туда элемент динамического массива? Например:

C++
1
RoundingFunction(IndexRho,IndexRhoM[i*column+j]);
Когда компилируешь ошибок нет. Но стоит попытаться использовать массив IndexRhoM, он выдает мне необработанное исключение, при чем ссылается на эту функцию. Подскажите. Можно ли так сделать? Кстати, он выдает мне warning в этой функции так как по сути я присваиваю целому значению double значение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2013, 14:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция округления чисел (C++):

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

Функция округления вещественного числа с заданой точностью - C++
Написать функцию,которая принимает в качестве параметров вещественное число и количество знаков после десятичной точки,которые должны...

Функция floor для округления значения до определённого числа знаков дробной части - C++
Всем привет ребята. кто мог бы объяснить где и что неправильно у меня в коде и как это исправить. Благодарю за внимание. Условие задачи:...

Как избежать округления дробных чисел - C++
как сделать что бы не округляло ??? float t; float z,m; using namespace std; void main(void) { m=-pow(5,2)/2;

Как избежать округления дробных чисел - C++
не виводит дробь а только целие числа. где проблема ? #include &lt;iostream.h&gt; #include &lt;math.h&gt; int mat(double x,double y){ ...

Функция возвращающая абсолютное разницу первого и второго параметров и функция типа int, возвращающая минимальное из трех целых чисел - C++
Разработать заданные согласно условия функции и сделать в главной программе по два вызова этих функций с различными параметрами. Для...

25
Eumi
5 / 5 / 0
Регистрация: 12.06.2012
Сообщений: 58
25.04.2013, 17:46  [ТС] #16
Цитата Сообщение от Tulosba Посмотреть сообщение
Что пишет-то, скриншот можно? Или скиньте уже куда-нибудь проект полностью.
Прикрепила, скрин.Только тут он пишет long, потому что я попыталась изменить тип, но с int тоже самое
0
Миниатюры
Функция округления чисел  
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
25.04.2013, 17:50 #17
Цитата Сообщение от Eumi Посмотреть сообщение
HoughTransformArray =NULL на входе
Уберите-ка в функции HoughTransform() обращение к HoughTransformArray (закомментируйте) и проверьте наличие ошибок.
0
Eumi
5 / 5 / 0
Регистрация: 12.06.2012
Сообщений: 58
25.04.2013, 17:55  [ТС] #18
Цитата Сообщение от Tulosba Посмотреть сообщение
Что пишет-то, скриншот можно? Или скиньте уже куда-нибудь проект полностью.
Вот весь проект, но он и правда очень большой, боюсь вас запутать еще больше.

Кликните здесь для просмотра всего текста
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <vector>
#include <math.h>
 
#define PI 3.14159265
 
using namespace std;
 
void ReadData(const char*, vector<double>&, int&, int&);
void ConvertVectorToDoubleArray(vector<double>, double*&, int, int);
int EdgeDetection(double*, double*&, double*&, int, int);
void WriteData(const char*, double*, int, int);
void AlocatePicture(double*&, int, int);
void DelocatingPicture(double*&);
void HoughTransform(double*, double*, double*&, int, int, int, int&);
void RoundingFunction(double, int&);
 
 
int main()
{
    /*The orthogonal egde detection method*/
    double* Gradient;//resulting array
    vector<double> VectorArray;
    double* tab;//input array
    double* AngQ;//An edge gradient angle array
    
    int row=0;
    int column=0;
    tab=NULL;
    Gradient=NULL;
    AngQ=NULL;
        
    ReadData("EdgeInput.txt", VectorArray, row, column);//reading a data and define sizes of matrix
    AlocatePicture(tab, row, column);// alocate a memory for the input array
    ConvertVectorToDoubleArray(VectorArray, tab, row, column);
    AlocatePicture(Gradient, row, column);//alocate a memory for the result array
    AlocatePicture(AngQ, row, column);//alocate memory for an edge gradient angle array
    EdgeDetection(tab, Gradient, AngQ, row, column);
    DelocatingPicture(tab);// deleting the input array
    WriteData("EdgeResult.txt", Gradient, row, column); 
    WriteData("EdgeAngle.txt", AngQ, row, column);
    DelocatingPicture(Gradient);// Delocating the memory for the result array
    DelocatingPicture(AngQ);//deleting the memory for the angle array
 
    /*The Hough Transform*/
    vector<double> VectorArrayGradient;
    vector<double> VectorArrayAngle;
    double* ArrayGradient;// input data(after appling gradient method)
    double* ArrayEdgeAngle;// edge angle array 
    double* HoughTransformArray;//resulting array
 
    int RowGradient=0;// Numbers of rows and columns in EdgeResult file
    int ColumnGradient=0;
    int RowAngle=0;// Numbers of rows and columns in EdgeAngle file
    int ColumnAngle=0;
    int MaxRhoInt=0;
    int MaxTheta=360;
    HoughTransformArray=NULL;
    ArrayGradient=NULL;
    ArrayEdgeAngle=NULL;
 
    ReadData("EdgeResult.txt", VectorArrayGradient, RowGradient, ColumnGradient);// reading input data from Gradient method and define numbers of rows and columns
    ReadData("EdgeAngle.txt", VectorArrayAngle, RowAngle, ColumnAngle);// reading input edge angles and define numbers of rows and columns
    AlocatePicture(ArrayGradient, RowGradient, ColumnGradient);//alocate memory for the gradient array
    AlocatePicture(ArrayEdgeAngle, RowAngle, ColumnAngle);//alocate memory for the angles array
    ConvertVectorToDoubleArray(VectorArrayGradient, ArrayGradient, RowGradient, ColumnGradient); //should be RowGradient = RowAngle, ColumnGradient=ColumnAngle, later in the programm used just one type
    ConvertVectorToDoubleArray(VectorArrayAngle, ArrayEdgeAngle, RowAngle, ColumnAngle);
    /*
    ArrayGradient - result after gradient method
    ArrayEdgeAngle - edge angles after gradient method
    HoughTransformArray - resulting array after Hought transform
    RowGradient, ColumnGradient - numbers of  rowas and columns in input array
    MaxTheta = 360 degrees is constant,MaxRhoInt = 0 - numbers of rows in resulting array define in the function
    */
    HoughTransform(ArrayGradient,ArrayEdgeAngle, HoughTransformArray, RowGradient, ColumnGradient, MaxTheta,MaxRhoInt);
    WriteData("HoughTransformResult.txt", HoughTransformArray, MaxRhoInt, MaxTheta);
    DelocatingPicture(HoughTransformArray);
}
 
/*Reading the file and define sizes of array*/
 
void ReadData(const char* filename, vector<double> &OutputVector, int& row, int& column)
{
    ifstream EdgeInputData(filename);
    if (!EdgeInputData) 
        cerr << "Error! Can't open the input file.\n";
    double InterveningVariable=0;
    while (!EdgeInputData.eof())
    {
        EdgeInputData>>InterveningVariable;
        OutputVector.push_back(InterveningVariable);
        
        if (EdgeInputData.peek() =='\n' || EdgeInputData.peek() == EOF)
            row++;
    }
    column = OutputVector.size()/row;
    
    EdgeInputData.close();
}
 
void AlocatePicture(double* &img, int row, int column)
{
    if (img!=NULL)
        delete []img;
    else
        img=new double[row*column];
}
 
void DelocatingPicture(double* &img)
{
    if (img==NULL)
        return;
    else
    {
        delete []img;
        img=NULL;
    }
}
 
/*Convert vector array to array */ 
void ConvertVectorToDoubleArray(vector<double> InputVector, double* &OutputArray, int row, int column)
{
//  OutputArray=new double[row*column];
    int i=0;
    int j=0;
    for (i=0; i<row; i++)
        for (j=0; j<column; j++)
            OutputArray[i*column + j] = InputVector[i*column + j];
}
 
/* Method of gradient*/
int EdgeDetection(double* InputArray, double* &G, double*& AngleArray, int row, int column)
{
    int i=0;
    int j=0;
    double *GC;
    GC=new double[row*column];
    for (i=0; i<row; i++)
        for(j=0; j<column; j++)
        {
            if (j==0)
                GC[i*column+j] = InputArray[i*column+j] - InputArray[i*column+j+1];//The boundary
            else 
                GC[i*column+j] = InputArray[i*column+j] - InputArray[i*column+j-1];
        }
 
    /*Forming array inlude raw gradients*/
    double *GR;
    GR=new double[row*column];
    for (j=0; j<column; j++)
        for(i=0; i<row; i++)
        {
            if (i==0)
                GR[i*column+j] = InputArray[i*column+j] - InputArray[(i+1)*column+j];//The boundary
            else
                GR[i*column+j] = InputArray[i*column+j] - InputArray[(i-1)*column+j];//The row gradient
                
        }
    /*The edge gradient and angles*/
    for (i=0; i<row; i++)
        for(j=0; j<column; j++)
        {
            G[i*column+j] = abs(GC[i*column + j]) + abs(GR[i*column + j]);//resulting gradient
            if (GR[i*column + j]==0)
                AngleArray[i*column+j]=90;
            else
                AngleArray[i*column+j]=atan(GC[i*column + j]/GR[i*column + j])*180/PI;//angle in degrees
        }
    
    delete [] GR;
    delete [] GC;
    return 0;
}
 
 /*write data in output file*/
void WriteData(const char* filename, double* matrix, int row, int column)
{
    ofstream EdgeResultFile(filename); //Open a file for output
    if (!EdgeResultFile) 
        cerr << "Error! Can't open the output file.\n";
    int i=0;
    int j=0;
    for (i=0; i<row; i++)
    {
        for(j=0; j<column; j++)
        {
            EdgeResultFile << matrix[i*column+j];
            if (j < column - 1) EdgeResultFile << " ";
        }
        if (i < row - 1) EdgeResultFile << "\n";
    }
    EdgeResultFile.close(); 
}
 
void HoughTransform(double* Gradient, double* EdgeAngleArray, double*& HoughTransformArray, int row, int column, int MaxTheta, int& MaxRhoInt)
{
    int i=0;
    int j=0;
    double* AnglePhi;//Phi=arctg(y/x)
    double* ThetaPolarCoordinate;
    double* RhoPolarCoordinate;
    AnglePhi=new double[row*column];
    ThetaPolarCoordinate=new double[row*column];
    RhoPolarCoordinate=new double[row*column];
    for (i=0; i<row; i++)//working with edge gradient angle
        for (j=0;j<column;j++)
        {
            if ((EdgeAngleArray[i*column+j]<90)&&(EdgeAngleArray[i*column+j]>=-90))
                EdgeAngleArray[i*column+j]=EdgeAngleArray[i*column+j]+90;
            else if ((EdgeAngleArray[i*column+j]>=90)&&(EdgeAngleArray[i*column+j]<180))
                EdgeAngleArray[i*column+j]=EdgeAngleArray[i*column+j]-90;
            else if ((EdgeAngleArray[i*column+j]>=-180)&&(EdgeAngleArray[i*column+j]<-90))
                EdgeAngleArray[i*column+j]=EdgeAngleArray[i*column+j]+270;
 
            if (j==0)
                AnglePhi[i*column+j]=90;
            else
                AnglePhi[i*column+j]=atan(i/j)*180/PI;//arctang(y/x)
 
            if (EdgeAngleArray[i*column+j]<AnglePhi[i*column+j])
                ThetaPolarCoordinate[i*column+j]=EdgeAngleArray[i*column+j]+90;
            else
                ThetaPolarCoordinate[i*column+j]=EdgeAngleArray[i*column+j]-90;
            RhoPolarCoordinate[i*column+j]=j*cos(ThetaPolarCoordinate[i*column+j])+i*sin(ThetaPolarCoordinate[i*column+j]);//rho=x*cos(theta)+y*sin(theta)
        }
    i=0;
    j=0;
    double MaxRho=RhoPolarCoordinate[0];//for finding max rho
    for (i=0; i<row; i++)
        for (j=0;j<column;j++)
        {
            if (RhoPolarCoordinate[i*column+j]>MaxRho)
                MaxRho=RhoPolarCoordinate[i*column+j];
        }
    RoundingFunction(MaxRho,MaxRhoInt);
    AlocatePicture(HoughTransformArray, MaxRhoInt, MaxTheta);
    i=0;
    j=0;
    int* IndexRhoM=new int[row*column];
    int* IndexThetaN=new int[row*column];
    for (i=0; i<row; i++)
        for (j=0;j<column;j++)
        {
            double IndexRho=0;
            double IndexTheta=0;
            IndexRho=2*MaxRho-(MaxRho-RhoPolarCoordinate[i*column+j])*(MaxRho-1)/(2*MaxRho);
            IndexTheta=360-((180-ThetaPolarCoordinate[i*column+j])*359/360);
            RoundingFunction(IndexRho,IndexRhoM[i*column+j]);
            RoundingFunction(IndexTheta,IndexThetaN[i*column+j]);
            
        }
    i=0;
    j=0;
    for (i=0;i<MaxRhoInt;i++)
        for (j=0;j<MaxTheta;j++)
                HoughTransformArray[i*360+j]=0;
    int n=column*row;
    i=0;
    j=0;
    for (i=0; i<n; i++)
            HoughTransformArray[IndexRhoM[i]*360+IndexThetaN[i]]=HoughTransformArray[IndexRhoM[i]*360+IndexThetaN[i]]+Gradient[i];
    
    delete []AnglePhi;
    delete []ThetaPolarCoordinate;
    delete []RhoPolarCoordinate;
    delete []IndexRhoM;
    delete []IndexThetaN;
}
 
/*void RoundingFunction(double RoundingVariable, int& ResultVariable)
{
    double IntegerPart=0;
    ResultVariable=0;
    if (modf(abs(RoundingVariable),&IntegerPart)<=0.5)
    {
        if (RoundingVariable>0)
            ResultVariable=floor(RoundingVariable);
        else
            ResultVariable=ceil(RoundingVariable);
    }
    else
    {
        if (RoundingVariable>0)
            ResultVariable=ceil(RoundingVariable);
        else
            ResultVariable=floor(RoundingVariable);
    }
}*/
 
void RoundingFunction(double RoundingVariable, int& ResultVariable)
{
    double IntegerPart=0;
    ResultVariable=0;
    if (RoundingVariable>0)
    {
        if (modf(RoundingVariable,&IntegerPart)<=0.5)
            ResultVariable=floor(RoundingVariable);
        else
            ResultVariable=ceil(RoundingVariable);
    }
    else if (RoundingVariable<0)
    {
        if (modf(RoundingVariable,&IntegerPart)<=-0.5)
            ResultVariable=floor(RoundingVariable);
        else
            ResultVariable=ceil(RoundingVariable);
    }
    else
        ResultVariable=0;
}


Добавлено через 1 минуту
Цитата Сообщение от Tulosba Посмотреть сообщение
Уберите-ка в функции HoughTransform() обращение к HoughTransformArray (закомментируйте) и проверьте наличие ошибок.
Я уже упоминала, что без этой строчки он не выдает ошибок

C++
1
2
for (i=0; i<n; i++)
    HoughTransformArray[IndexRhoM[i]*360+IndexThetaN[i]]=HoughTransformArray[IndexRhoM[i]*360+IndexThetaN[i]]+Gradient[i];
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
25.04.2013, 18:14 #19
Для HoughTransformArray выделяете (MaxRhoInt * MaxTheta) элементов, а обращаетесь к элементу с индексом (IndexRhoM[i]*360+IndexThetaN[i]). За диапазон вероятно выходите в цикле. Для проверки мне не хватает EdgeInput.txt
0
Eumi
5 / 5 / 0
Регистрация: 12.06.2012
Сообщений: 58
25.04.2013, 18:26  [ТС] #20
Цитата Сообщение от Tulosba Посмотреть сообщение
Для HoughTransformArray выделяете (MaxRhoInt * MaxTheta) элементов, а обращаетесь к элементу с индексом (IndexRhoM[i]*360+IndexThetaN[i]). За диапазон вероятно выходите в цикле. Для проверки мне не хватает EdgeInput.txt
Создайте файл с таким массивом. Мне почему то не позволяет прикрепить файл, говорит что уже выкладывала=)

0 0 0 0 0
0 0 0 0 0
0 0 1 1 1
0 0 1 1 1
0 0 1 1 1

Добавлено через 1 минуту
Цитата Сообщение от Eumi Посмотреть сообщение
ля HoughTransformArray выделяете (MaxRhoInt * MaxTheta) элементов, а обращаетесь к элементу с индексом (IndexRhoM[i]*360+IndexThetaN[i])
Выделяю, и заполняю его нулями, а обращаюсь так, потому что только некоторые элементы меняются, хотя я уже начина сомневаться в своей логике=)
0
ValeryS
Модератор
6729 / 5138 / 485
Регистрация: 14.02.2011
Сообщений: 17,245
25.04.2013, 18:35 #21
Цитата Сообщение от Eumi Посмотреть сообщение
Создайте файл с таким массивом.
и так 5*5
а в обращении есть
Цитата Сообщение от Eumi Посмотреть сообщение
y[IndexRhoM[i]*360+IndexThetaN[i]]
т.е может быть и 360 и 720
вот тебе и выход за пределы

я обычно делаю так
расписываю выражения
например
Цитата Сообщение от Eumi Посмотреть сообщение
for (i=0; i<n; i++)
HoughTransformArray[IndexRhoM[i]*360+IndexThetaN[i]]=HoughTransformArray[IndexRhoM[i]*360+IndexThetaN[i]]+Gradient[i];
C++
1
2
3
4
for (i=0; i<n; i++)
{ int ind1=IndexRhoM[i]*360+IndexThetaN[i];
   HoughTransformArray[ind1]=HoughTransformArray[ind1]+Gradient[i];
}
а потом в отладчике слежу за ind1
можно ввести отладочную печать
C++
1
printf("%d",ind1);
тогда понятно какие значения принимает индекс и есть ли выход за пределы
1
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
25.04.2013, 18:39 #22
Вот Ваш проблемный случай:
C++
1
2
3
4
5
for (i=0; i<n; i++)
{
   int index = IndexRhoM[i]*360+IndexThetaN[i]; // Индекс выходит за пределы
   HoughTransformArray[index]=HoughTransformArray[index]+Gradient[i];
}
P.S. ValeryS тоже об этом сказал.
1
Eumi
5 / 5 / 0
Регистрация: 12.06.2012
Сообщений: 58
25.04.2013, 19:20  [ТС] #23
Tulosba, ValeryS,
ясно=) все верно матрица может быть и 320 на 720=) это не страшно. Я, просто в один момент немного поменяла формулу

было:
C++
1
IndexRho=MaxRho-(MaxRho-RhoPolarCoordinate[i*column+j])*(MaxRho-1)/(2*MaxRho);
а стало:
C++
1
IndexRho=2*MaxRho-(MaxRho-RhoPolarCoordinate[i*column+j])*(MaxRho-1)/(2*MaxRho);
но при этом забыла, что количество строк тоже должно увеличиваться в двое. то есть все решает одна строчка
C++
1
2
3
    RoundingFunction(MaxRho,MaxRhoInt);
    MaxRhoInt=2*MaxRhoInt; // вот эта вот=)))
    AlocatePicture(HoughTransformArray, MaxRhoInt, MaxTheta);
Tulosba, ValeryS спасибо вам огромное за помощь. Я просто уже столько с этим кодом вожусь что у меня ум за разум заходит. Без ваших пояснений, не додумалась бы, что дело в пределах. Еще раз спасибо большое. К сожалению репутацию я вам меня пока не могу=) ошибки не выдает, теперь буду возиться, чтобы все это работало правильно=)
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
25.04.2013, 21:13 #24
Eumi, да Вам много чего не помешает в коде перелопатить.
0
Eumi
5 / 5 / 0
Регистрация: 12.06.2012
Сообщений: 58
26.04.2013, 00:25  [ТС] #25
Цитата Сообщение от Tulosba Посмотреть сообщение
Eumi, да Вам много чего не помешает в коде перелопатить.
Например? Hough Transform я только начала делать=) алгоритм еще сырой=) его переделывать и переделывать еще=) а если подскажите что нить по остальной части буду очень благодарна, потому что на мой взгляд новичка, все нормально=) при условии что мне сказали глубоко не лезть=)
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
26.04.2013, 07:56 #26
Eumi, вся программа написана хоть и на c++, но в стиле обычного c. Имитация двумерности массивов. Выделение/освобождение памяти в куче. Дублирование кода. Да много чего на взгляд новична незаметного
0
26.04.2013, 07:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2013, 07:56
Привет! Вот еще темы с ответами:

Чудеса округления - C++
Не могу посчитать i-ый член по формуле разности Ньютона (см. прикреплённый файл). Из-за округления я не могу получить члены после j...

Метод округления числа - C++
Метод округления числа введонного с клавиатуры. Например вводим 2,5 , а выводит 3 ;

Как избавиться от округления - C++
Доброго времени суток. У меня следующая проблема. pp = 0.1534886 + 151.5235 - 0.15668835467; pp имеет тип double, но в качестве...

Каковая точность округления? - C++
Какова точность округления у таких функций, как round/ceil/floor? Сколько раз я могу просуммировать число с погрешностью (имеется ввиду,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.