MQL4 ve MQL5'te Rakamları () atlayarak herhangi bir sayıdan (sadece tırnak işaretleri değil) sonra ondalık basamak sayısını alma - sayfa 11

 
multiplicator :
yüzer ***. bu şamandıralar nedeniyle bazı sorunlar.

programlama için normal sayılar zaten yapıldığında, aksi takdirde burada acı çekersiniz.

Ayrıca hafızada tamsayı ve kesirli kısım olarak saklanan bir kesirli sayı oluşturabilirsiniz.

float sadece daha basittir, iki katından daha az hassasiyet (sonraki basamaklar) vardır

programlama için normal sayılar? )))), görünüşe göre ondalık türü istiyorsunuz, ancak ne yazık ki, geliştiriciler açıkça (yönetici Renat'ın arama yoluyla gönderileri) yeni türlerin olmayacağını söyledi.

bir kesire ikiye katlayın, işte yaptığım şey https://www.mql5.com/en/forum/290279#comment_9396706

, ancak yine de +, -, *, / operatörlerine aşırı yüklenmek için, atmak ilginç olana kadar ihtiyaç var

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

float sadece daha basittir, iki katından daha az hassasiyet (sonraki basamaklar) vardır

programlama için normal sayılar? )))), görünüşe göre ondalık türü istiyorsunuz, ancak ne yazık ki, geliştiriciler açıkça (yönetici Renat'ın arama yoluyla gönderileri) yeni türlerin olmayacağını söyledi.

bir kesire ikiye katlayın, işte yaptığım şey https://www.mql5.com/ru/forum/290279#comment_9396706

, ancak yine de +, -, *, / operatörlerine aşırı yüklenmek için, atmak ilginç olana kadar ihtiyaç var

evet, ondalık



Veya kendinizinkini geliştirin. böylece sayı, tamsayı kısmı ve kesirli kısmı olarak bellekte saklanır.
iki tam sayı gibi.



2.147.483.647. 2.147.483.647



ve bellek iki tamsayı olarak alacaktır. 8 bayt.

 
multiplicator :

evet, ondalık



Veya kendinizinkini geliştirin. böylece sayı, tamsayı kısmı ve kesirli kısmı olarak bellekte saklanır.
iki tam sayı gibi.



2.147.483.647. 2.147.483.647



ve bellek iki tamsayı olarak alacaktır. 8 bayt.

zaten bir double-double aritmetik standardı var

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 :

zaten bir double-double aritmetik standardı var

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

Aksine, ben çiftlerden uzaklaşmak istiyorum ve sen bana bir çift-double teklif ediyorsun.

çiftler, bir sayıyı tam olmayan bir şekilde bellekte saklar.
video verdi .
 
multiplicator :
Aksine, ben çiftlerden uzaklaşmak istiyorum ve sen bana bir çift-double teklif ediyorsun.

çiftler, bir sayıyı tam olmayan bir şekilde bellekte saklar.
video verdi .

Pekala, eğer hesaplama hızı ve uyumluluk önemli değilse, o zaman evet, istediğiniz gibi sayabilirsiniz.
Ancak bu sayıların bir yerde kullanılması gerektiğinde, her şeyin tekrar çifte, kesin olmayan bir sayıya çevrilmesi gerekecektir.

 
Taras Slobodyanik :

Pekala, eğer hesaplama hızı ve uyumluluk önemli değilse, o zaman evet, istediğiniz gibi sayabilirsiniz.
Ancak bu sayıların bir yerde kullanılması gerektiğinde, her şeyin tekrar çifte, kesin olmayan bir sayıya çevrilmesi gerekecektir.

Eh, ondalık olarak orada her şey yolunda. bir şekilde birbirlerine bölünürler ve kesin biçimde saklanırlar.

 
multiplicator :

Eh, ondalık olarak orada her şey yolunda. bir şekilde birbirlerine bölünürler ve kesin biçimde saklanırlar.

peki, ondalık olarak değil, kesirlerde

ve ondalık sayılarda, aynı yanlışlıklar-kısaltmalar üzerinde anlaşmanız gerekir, çünkü sonsuz kesin sayıları yazmak imkansızdır (gereksizdir).

 
multiplicator :

Eh, ondalık olarak orada her şey yolunda. bir şekilde birbirlerine bölünürler ve kesin biçimde saklanırlar.

Logaritmaları nasıl sayacağınızı, tamsayı olmayan sayılarla üs almayı, trigonometriyi nasıl kullanacağınızı, .... üçüncü taraf kitaplıkları, göstergeleri nasıl kullanacağınızı merak ediyorum ... Hepsi bir hata ile!
 
Aliaksandr Hryshyn :
Logaritmaları nasıl sayacağınızı, tamsayı olmayan sayılarla üs almayı, trigonometriyi nasıl kullanacağınızı, .... üçüncü taraf kitaplıkları, göstergeleri nasıl kullanacağınızı merak ediyorum ... Hepsinde bir hata var!
Pekala, ondalık sayılarla çalışmak bir şekilde ikili sayılarla çalışmaktan daha geleneksel.
ve hataların olabileceği yerlere zaten alışmışsınızdır.
 

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

Bu muhtemelen en iyi çözümdür, ancak bu şekilde %40 daha hızlı çalışacaktır (nedense mql döngülerde yavaşlar)

 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() работает тольк...