double сохраняет данные не в точном виде. Нужен ли тип данных, который будет сохранять все знаки после запятой в точном виде? - страница 2

 
ну конечно, числа с неполной точностью лучше, чем числа с полной точностью.
 
Nikolai Semko:

А кто заставляет финансы в double считать? Считайте в long, предварительно избавившись от запятой умножением на порядок нужной точности.

зачем извращаться?


"ну так извратись!" - обычно отвечают люди, которые выступают на несовершенные вещи.

 
multiplicator:


Ой бяда...
Вам сюда и сюда.

Изучайте матчасть.

 
Nikolai Semko:

Ой бяда...
Вам сюда и сюда.

Изучайте матчасть.

ну вот, голимые ваши даблы. а если использовать decimel, ошибки бы там не появилось. )))
 
Alexey Volchanskiy:

Тип Decimal есть во всех вменяемых БД, а как еще прикажете хранить денежные величины? Ну не в double же. Странно, что в MQL, который заточен на работу с финансами, такого типа нет. Проголосовал Да.

Попутно родилась мысль сделать сласс CDecimal ))

Ни чего не путаете. Денежные единицы (currency) имеют формат хранения данных две точки после запятой (0.00). 

 
Ну что это за х@@нь?
Ну куды это?

#property strict
double a;

void OnStart()
  {
  for(int x=1;x<=10000000; x++)  
  a=a+0.7;

  Alert (a);  
  }



 

Ренат уже писал здесь, что такого типа не будет, так как он хорошо понимает, что все кому он нужен, могут написать его сами.

Для этого и существует ООП.

Можно ли в MQL5 задать тип decimal
Можно ли в MQL5 задать тип decimal
  • 2016.12.17
  • www.mql5.com
Очень нужен тип decimal, это тот который double, но не такой плавающий :) Может есть вероятность, что в какой-то версии МТ появится возможность бол...
 
1 деленное на 3 - как его сохранить со всеми знаками после запятой?
 
Dmitry Fedoseev:
1 деленное на 3 - как его сохранить со всеми знаками после запятой?
ну не 0.7 же.
и не 0.6, 0.5, 0.8, 0.9.

как в десятичной системе записать.
кстати, оно в формате дабл и в десятичной системе записывается одинаково: 0.3333333333333333

и это деление. а тут при сложении уже появляется погрешность.
 
multiplicator:
Ну что это за х@@нь?
Ну куды это?


Так не надо делать. 

Надо так:

 for(int x=1;x<=10000000; x++)  
  a=0.7*x;
Причина обращения: