Как получить значение ?

 

Есть например цена 1,42974

как из неё получить 1,42 ?

если использовать NormalizeDouble(1,42974, 2) то получим 1,43

 
Stells:

Есть например цена 1,42974

как из неё получить 1,42 ?

если использовать NormalizeDouble(1,42974, 2) то получим 1,43

double b = 1.429786554444;

double c = MathCeil(b*100)/100.0;

Можно так.

 
VladislavVG:

double b = 1.429786554444;

double c = MathCeil(b*100)/100.0;

Можно так.


MathFloor наверное?
 

Влад, здорово.

Что то опять не то.

В общем главная задача, надо из значения 1,42974

получить 97 пунктов.

Например из цены 1, 24681

получить 68 пунктов

 
Stells:

Влад, здорово.

Что то опять не то.

В общем главная задача, надо из значения 1,42974

получить 97 пунктов.

Например из цены 1, 24681

получить 68 пунктов


Мне как-то понадобилось в коде советника использовать отброс дробной части. Вызвал Delphi, сделал DLL-ку и не парюсь.
 
Stells:

Влад, здорово.

Что то опять не то.

В общем главная задача, надо из значения 1,42974

получить 97 пунктов.

Например из цены 1, 24681

получить 68 пунктов


ну вычтите (b-c)
 
Stells:

Влад, здорово.

Что то опять не то.

В общем главная задача, надо из значения 1,42974

получить 97 пунктов.

Например из цены 1, 24681

получить 68 пунктов

Можно так. Нет приведения типов - потому приходится немного колдовать ;)

//+------------------------------------------------------------------+
//|                                                     toStells.mq4 |
//|                                    Copyright © 2011, VladislavVG |
//|                                        https://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, VladislavVG"
#property link      "https://www.metaquotes.net"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
double GetStdPointSize(string SMBL)
{
    // ********************** FOREX ********************** 
    if (StringFind(SMBL, "JPY") != -1) return(0.01);
    if (StringFind(SMBL, "HUF") != -1) return(0.01);
    if (StringFind(SMBL, "XAG") != -1) return(0.01);
    if (StringFind(SMBL, "XAU") != -1) return(0.1);
    if (StringFind(SMBL, "USD") != -1) return(0.0001);
    // ********************** CFD ********************** 
    return(0.01);
}

int start()
  {
//----
   double b         = 1.4285657834;
   double nPoint    = GetStdPointSize(Symbol());
   double point100  = 100.*nPoint;
   int   ic = b/point100;
   double c = ic*point100;
   int   id = b/nPoint;
   double d = id*nPoint;
   double rez = d-c;
   Print("rez = ", rez);
//----C
   return(0);
  }
//+------------------------------------------------------------------+

Удачи.

 
VladislavVG:

Можно так. Нет приведения типов - потому приходится немного колдовать ;)

Удачи.


Спасибо. Попробую.
 
как всё это найти по поиску...??? "обрезать без округления"? https://www.mql5.com/ru/forum/106198
Причина обращения: