Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Ve Yazdır () işlevinin söveleriyle ilgili soru açık mı kalacak? :)
Nasıl istersen.
TAMAM. Sonra dalma yapacağım. Bu nedenle, Print() işlevinin açıklaması, " Çift tip veri, noktadan sonra 16 ondalık basamak doğruluğuyla çıktı alınır" diyor. Aslında, Print() işlevinin biraz yuvarlatılmış veriler verdiği ortaya çıktı:
void OnStart () { double a,b; a= 7.0 / 200.0 ; b= 7.0 /a; Print (" Print (b)=",b); Print (" Print ( DoubleToString (b, 16 ))=", DoubleToString (b, 16 )); }
MP 0 victorg2 (EURUSD,M1) 11:04:42 Print(DoubleToString(b,16))= 199,9999999999999716
TAMAM. Sonra dalma yapacağım. Bu nedenle, Print() işlevinin açıklamasında " Çift tip veri, noktadan sonra 16 ondalık basamak doğruluğuyla çıktı alınır" yazıyor. Aslında, Print() işlevinin biraz yuvarlatılmış veriler verdiği ortaya çıktı:
MP 0 victorg2 (EURUSD,M1) 11:04:42 Print(DoubleToString(b,16))= 199,9999999999999716
123.4567890123456(7>5 yani yuvarla)
Her şey açıklamaya uyuyor gibi görünüyor. Jamb nedir? Sıfırlar çıktı değil mi?
Sorun, Print() işlevinin " Noktadan sonra 16 ondalık basamak kesinliği ile double türünde veri" çıktısı vermemesidir.
Kontrol
Print (" Print (b)=" + b);
Kontrol
Tembel değil, kontrol edildi.
İlk olarak, derlerken şunu üretir: "'sayıdan' 'string' victorg2.mq5 12 22'ye örtük dönüştürme".
İkincisi,
IS 0 victorg2 (EURUSD,M1) 17:46:45 Yazdır(b)=200
PJ 0 victorg2 (EURUSD,M1) 17:46:45 Yazdır( DoubleToString (b,16))=199.9999999999999716
Tam format kontrolü için uygun PrintFormat fonksiyonunu kullanın:
Varsayılan olarak Print, 4 ondalık basamak için normal çift yuvarlama modunu kullanır. Belgeleri güncelleyeceğiz.Lütfen yapılara (tercihen statik olanlar dahil dizilere) işaretçiler (tutamaçlar) verin.
Sınıflara sarmak genellikle kötü bir fikirdir:
2012.04.07 20:49:38 SizeOf_Test (USDJPY,M30) sizeof(SEmpty) = 0
Lütfen yapılara (tercihen statik olanlar dahil dizilere) işaretçiler (tutamaçlar) verin.
Ne anlamda ve neden?
1. Hangi anlamda ve
2. neden?
1.
CEmpty *C[]; // Это работает. SEmpty *S[]; // Error : 'SEmpty' - class type expected SizeOf_Test.mq5 19 1
Yapılara (dizilere) işaretçi dizileri oluşturmak için. Sonraki başlatma ile for(i){ S[i] = GetPointer(StaticStruct[i]); }
2. Anlamlı veri dizilerinin katı (paketlenmiş) formunu korumak.
Ham OpenCL arabelleklerine veri çıkışı ile çalışırken (veya bir DLL'ye gönderirken, dosyalara yazarken vb.)
Bu, verileri yeniden yazmadan veri erişimini (örneğin , işaretçileri sıralarken ) yeniden sıralama olasılığını korur (görünür).