[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 451
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
Onlar. bu fonksiyona ihtiyacımız var F(8.564.00) = 85464.00
MathMod() bölmedir. Daha fazla saf matematik: TimeLocal () sonucunun her saniyede (veya daha sık) 20'ye bölünmesi durumunda, her 20 saniyede bir kalan sıfıra eşit olacaktır.
Sonuç: Aynı fikir farklı şekillerde uygulanabilir.
Neden her 20 saniyede bir? Örneğin, neden 19 veya 17 yaşında değil?
bool flag = true;
int i=0;
int w=0;
double sum;
int t=20;
int start()
{
sum=TimeLocal() / t;
if (flag)
{
while(i<20)
{
w=w+1;
Alert(+w,"-й, Результат TimeLocal-",+sum);
i++;
sum=sum/20;
Sleep(1000);
}
flag = false;
}
return(0);
}
Burada her 11 saniyede bir sıfırdır. 20'ye, 20'ye bölünür.
Noob soruları için özür dilerim, sadece anlamak istiyorum.
Neden 20'ye tam olarak 20 kez böldünüz?
Kazanana kadar paylaşmalısın ;)
8.5464/0.0001=85464
Teşekkür ederim.
Ama demek istediğim bu değil.Virgül üçlülerin ayırıcısıdır, ama nokta kesirli kısmın ayırıcısıdır.
Bir sayıya dönüştürülmesi gereken 8,5464.00 dizim var. StrToDouble(8.564.00) 8 değerini döndürür.
F(8.564.00) = 85464.00
bu işlevi yapmaya çalışın
{
https://docs.mql4.com/ru/strings/StringFind üzerinden virgül araması
İki bölümden yeni bir dize toplama: virgülden önceki dize ve virgülden sonraki dize https://docs.mql4.com/en/strings/StringGetChar
Sayıya dönüştür StrToDouble()
}
İşte güzel bir örnek, dediğin gibi her şey doğru.
hm...
Nasıl oluyor da tam 20 saniyede 0 oluyor. Yerel saati 80000000000 numarası altında görebilirsiniz ... Lanet olsun .. buradaki hile nedir? Belki biraz ara vermeliyim...
int i=0;
int e;
int w=0;
int start()
{
while(true)
{
e=MathMod(TimeLocal(), 20);
w=w+1;
Alert(+w,"-й, Результат MathMod-",+e);
Sleep(1000); // Спим 1-ну секунду
return(0);
}
bu işlevi yapmaya çalışın
{
https://docs.mql4.com/ru/strings/StringFind üzerinden virgül araması
İki bölümden yeni bir dize toplama: virgülden önceki dize ve virgülden sonraki dize https://docs.mql4.com/en/strings/StringGetChar
Sayıya dönüştür StrToDouble()
}
Ve başka bir yol yok, aksi takdirde bu işlev uzun süre çalışacaktır.
MathMod (WHATNUMBER, 20) = 0 ise, bunun anlamı (eğer hafızam bana hizmet ediyorsa)
NE SAYISI 20 ile kalansız bölünür.
20 40 60 80 100 120 140 160 vb.
Ve başka bir yol yok, aksi takdirde bu işlev uzun süre çalışacaktır.
Bir dizeden virgül nasıl kaldırılır bilmiyorum.
Teşekkür ederim.
Ama demek istediğim bu değil, virgül üçlülerin ayırıcısıdır, ama nokta kesirli kısmın ayırıcısıdır.
Bir sayıya dönüştürülmesi gereken 8,5464.00 dizim var. StrToDouble(8.564.00) 8 değerini döndürür.
F(8.564.00) = 85464.00
Sembolik olarak, dize işlevleri aracılığıyla virgülü ve ardından StrToDouble() öğesini kaldırın.