Obtenir le nombre de décimales de n'importe quel nombre (pas seulement les guillemets) en contournant Digits() dans MQL4 et MQL5 - page 11

 
multiplicator:
Le flotteur est un tel ***. Ces flotteurs ne sont rien d'autre que des problèmes.

Quand feront-ils des numéros normaux pour la programmation ?

Vous pouvez faire en sorte qu'un nombre fractionnaire soit stocké en mémoire sous la forme d'un nombre entier et d'une partie fractionnaire.

float est plus facile, il a moins de précision (chiffres après,) que double

Ces chiffres sont-ils normaux pour la programmation ? )))), apparemment vous voulez du décimal, mais hélas, les développeurs ont explicitement dit (chercher dans les posts de l'admin Renat) qu'il n'y aura pas de nouveaux types

du double au fractionnement, voicihttps://www.mql5.com/ru/forum/290279#comment_9396706

mais j'ai toujours besoin de +, -, *, / pour surcharger les opérateurs, donc je ne suis pas intéressé.

Число в дробь (convert double to fraction)
Число в дробь (convert double to fraction)
  • 2018.11.16
  • www.mql5.com
Ищу способ преобразовать вещественное число в дробь, нагуглил исходник https://stackoverflow...
 
Igor Makanu:

float est plus facile, il a moins de précision (chiffres après,) que double

Ces chiffres sont-ils normaux pour la programmation ? )))), apparemment vous voulez du décimal, mais hélas, les développeurs ont explicitement dit (chercher dans les posts de l'admin Renat) qu'il n'y aura pas de nouveaux types

double en fraction, ici a faithttps://www.mql5.com/ru/forum/290279#comment_9396706

mais il faut encore des opérateurs +, -, *, / pour surcharger, jusqu'à présent pas intéressant abandonné

Oui, DECIMAL.



Ou bien développez votre propre type. de sorte que le nombre soit stocké en mémoire sous la forme de sa partie entière et de sa partie fractionnaire.
comme deux entiers.



2 147 483 647.2 147 483 647



et cela prendrait autant de mémoire que deux entiers. 8 octets.

 
multiplicator:

Oui, DECIMAL.



Vous pouvez également développer votre propre type pour stocker le nombre sous la forme de sa partie entière et de sa partie fractionnaire.
comme deux entiers.



2 147 483 647.2 147 483 647



Et ça prendrait autant de mémoire que deux entiers. 8 octets.

il existe déjà une arithmétique standard double-double

https://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format

Quadruple-precision floating-point format - Wikipedia
Quadruple-precision floating-point format - Wikipedia
  • en.wikipedia.org
This 128-bit quadruple precision is designed not only for applications requiring results in higher than double precision,[1] but also, as a primary function, to allow the computation of double precision results more reliably and accurately by minimising overflow and round-off errors in intermediate calculations and scratch variables. William...
 
Taras Slobodyanik:

il existe déjà une arithmétique standard double-double

https://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format

Au contraire, je veux m'éloigner du double-double, et vous me proposez le double-double.

Les personnes handicapées stockent le numéro en mémoire sous une forme imprécise.
Je vous ai donné une vidéo.
 
multiplicator:
Moi, au contraire, je veux m'éloigner des dubles, et vous me proposez un duble-duble.

les duplex stockent le numéro en mémoire sous une forme inexacte.
Je vous ai donné une vidéo.

Eh bien, si la vitesse de calcul et la compatibilité ne sont pas importantes, alors oui, vous pouvez compter comme vous voulez.
Mais dès que ces chiffres devront être utilisés quelque part - vous devrez tout reconvertir en dable, en un chiffre inexact.

 
Taras Slobodyanik:

Eh bien, si la vitesse et la compatibilité ne sont pas importantes, alors oui, vous pouvez compter comme vous voulez.
Mais dès que ces chiffres doivent être utilisés quelque part, vous devez tout reconvertir en un nombre double et inexact.

En décimal, c'est bon. Ils sont en quelque sorte divisés l'un par l'autre et stockés sous forme exacte.

 
multiplicator:

En décimal, c'est bon. D'une certaine manière, ils sont divisés l'un par l'autre et stockés sous une forme exacte.

enfin, pas en décimal, mais en fractions

et en décimal il faut accepter les mêmes imprécisions-abréviations, car il est impossible (inutile) d'écrire des nombres exacts infinis

 
multiplicator:

Eh bien, en décimal, c'est OK. D'une certaine manière, ils sont divisés les uns dans les autres et stockés exactement comme ils sont.

Je me demande comment vous allez compter les logarithmes, les conversions de degrés avec des nombres non entiers, utiliser la trigonométrie, ..... utiliser des bibliothèques tierces, des indicateurs... Ils sont tous dans l'erreur !
 
Aliaksandr Hryshyn:
Je me demande comment vous allez compter les logarithmes, les puissances avec des nombres non entiers, utiliser la trigonométrie, ..... utiliser des bibliothèques tierces, des indicateurs... Ils sont tous sujets à des erreurs !
Vous avez l'habitude de travailler avec des nombres décimaux plutôt qu'avec des nombres binaires.
et vous avez l'habitude de savoir où se trouve la marge d'erreur.
 

https://www.mql5.com/ru/forum/287618/page3#comment_9240442

C'est probablement la meilleure solution, mais elle sera 40 % plus rapide (pour une raison quelconque, mql ralentit dans les boucles).

int d2(double x){
  if(x==NormalizeDouble(x,6))
   {
    if(x==NormalizeDouble(x,5))
     {    
      if(x==NormalizeDouble(x,4))
       {
        if(x==NormalizeDouble(x,3))
         {
          if(x==NormalizeDouble(x,2))
           {
            if(x==NormalizeDouble(x,1))
             {
              if(x==NormalizeDouble(x,0))
               {
                return 0;
               }
              return 1;
             }
            return 2;
           }
          return 3;
         }
        return 4;
       }
      return 5;
     }
    return 6;
   }
  return 7;
}
Получаем количество десятичных знаков после запятой любых чисел (не только котировок) в обход Digits() на MQL4 и MQL5
Получаем количество десятичных знаков после запятой любых чисел (не только котировок) в обход Digits() на MQL4 и MQL5
  • 2018.11.03
  • www.mql5.com
Думаю не у одного меня была редкая ситуация когда нужно было получить количество десятичных знаков после запятой, а функция Digits() работает тольк...