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 2

 
fxsaber :

Evet, sekiz.

Neden o zaman

 void OnStart ()
{
         double price = 500000000.0001 ;
         Print ( price, ":" , Digits_values( price ));
}

Digits_values 4 döndürür?

Sonuç: 500000000.0001:4

 

Ve burada ondalık noktadan sonra kaç basamak var?

 void OnStart ()
{
         double price = 5000000000.0001 ;
         Print ( price, ":" , GetDigits( price ));
}

Bilgisayarın sayamayacağı kadar çok var.

Sonuç: ???

 
A100 :

Neden o zaman

Digits_values 4 döndürür?

Sonuç: 500000000.0001:4

Dize yayınlamayı öğrenin.

 
A100 :

Ve burada ondalık noktadan sonra kaç basamak var?

Bilgisayarın sayamayacağı kadar çok var.

Sonuç: ???

Evet, 1/3 gibi.

 
A100 :

İyi bir çözüm genellikle doğru şekilde çalışır

Her şeyi kontrol etmemiş olabilirim ama MQL4 üzerinde iki kez test ettiğimde çıktı değerleri doğru çıktı.

 
fxsaber :

Dize yayınlamayı öğrenin.

Ve hayaletin nesi var? Orijinal bir numara var 500000000.0001

Soru şu ki, kaç ondalık basamağı var? Cevap 4 ve sende 8 var

 
A100 :

Orijinal bir numara var 500000000.0001

Çiftler arasında böyle bir sayı yoktur. Yaklaşık olarak buna eşittir 500000000.000100016593933105. Atanmıştır.

 
A100 :

Ve hayaletin nesi var? Orijinal bir numara var 500000000.0001

Soru şu ki, kaç ondalık basamağı var? Cevap 4 ve sende 8 var

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

 
Alexandr Sokolov :

Ondalık noktadan sonra ondalık basamak sayısını almak gerektiğinde nadir bir durum yaşayan tek ben değilim sanırım ve Digits() işlevi yalnızca tırnak işaretleri ile çalışıyor ve ayrıca bu konuda hiçbir bilgi yok herhangi bir yerde (en azından bu yazıyı daha önce yazarken bulamadım, bu yüzden bulduğum çözümü göstermek istiyorum)?


Görünüşe göre, öz çok basit, ancak yine de bir dezavantajı var - onlardan sonra başka basamak yoksa bu işlev sıfırları tanımıyor. Örneğin, fonksiyona 0,01 sayısı verilirse 2, 0,0000 ise 0 döndürür (yani dört sıfır görmez). Bu nedenle, geliştirmelerinizde bu eksikliği göz önünde bulundurun.


MQL4'teki kod



Value parametresinin sizin için mavi renkle çizilmiş olması sizi biraz endişelendirmiyor mu?

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

Value parametresinin sizin için mavi renkle çizilmiş olması sizi biraz endişelendirmiyor mu?

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