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 3

 
A100 :

Ve hayaletin nesi var?

 Print ( 500000000000.00001 ); // 500000000000.0
 
Sadece müthiş! O kadar inatla ve tüm ciddiyetle, yanlış cevabın doğru cevap olduğunu kanıtlamak için. Ben suçsuzum, kendisi geldi))
 
Alexandr Sokolov :

Bir nedenden dolayı burada forumda, ancak editörde her şey her zamanki gibi

Bu ismi başka bir yerde kullanıp kullanmadığımı kontrol ederdim.

 
Алексей Тарабанов :

Bu ismi başka bir yerde kullanıp kullanmadığımı kontrol ederdim.

Editörde, değişken adı değeri mavi olarak görüntülenmez (bu sadece forumda geçerlidir). Evet ve yalnızca MQL4 sürümünde mavi ve her zamanki gibi siyah olarak MQL5'te görüntülenir. Bunun neden böyle olduğunu bilmiyorum ve kodun doğruluğunu etkilemiyor gibi görünüyor, sonuçta kimse ekran görüntüleriyle şikayette bulunmadı)

 
fxsaber :

Double arasında böyle bir sayı yoktur . Yaklaşık olarak buna eşittir 500000000. 00100016593933105 . Atanmıştır.

tahmin etti . Ve kaç ondalık basamak var? sekiz?

 
Алексей Тарабанов :

"8'iniz var" değil, ancak mql'de varsayılan değer 8'dir. Belgeleri nasıl okuyacağımızı bilmiyoruz?

MQL'de varsayılan 8 nedir? Belgelerin bağlantısı nerede? Ve bunun orijinal problemle ne ilgisi var?

 
   double x=500000000.0001;
   
   Alert((500000000.0001==NormalizeDouble(500000000.0001,4))); // true
 
int d(double x){
   int n;
   for(n=0;n<8;n++){
      if(x==NormalizeDouble(x,n)){
         return(n);
      }
   }
   return(n-1);
}
 
Dmitry Fedoseev :

diz çöküyorum.

 

Dmitry Fedoseev :

 int d( double x){
   int n;
   for (n= 0 ;n< 8 ;n++){
       if (x== NormalizeDouble (x,n)){
         return (n);
      }
   }
   return (n- 1 );
}
Ayrıca bunun çalışan bir seçenek olduğunu düşünüyorum, ancak henüz hiçbir şeyi kontrol etmedim, ancak fikrin kendisini anladım ve hatalar (varsa) bu süreçte düzeltilebilir.