[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 346
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
Senaryonun en başında yazıyorsun
#özellik show_inputs
dış çift Parti = 0.1
bundan sonra, komut dosyasını araç penceresine ekleme anında bir iletişim kutusu görünecektir. orada ve parti büyüklüğünü girin
Anladım. Ama ihtiyacım olan bu değil. Bu komutlarla, danışmanların genel ayarları ve mevcut komut dosyasının ayarları ile bir iletişim kutusu görünecektir ve SADECE komut dosyası ayarlarıyla hemen ÖNCE görüntülemek için kullanılabilecek böyle bir işlev olup olmadığını sordum.
Anladım. Ama ihtiyacım olan bu değil. Bu komutlarla, danışmanların genel ayarları ve mevcut komut dosyasının ayarları ile bir iletişim kutusu görünecektir ve SADECE komut dosyası ayarlarıyla hemen ÖNCE görüntülemek için kullanılabilecek böyle bir işlev olup olmadığını sordum.
Sonra sadece MetaEditor.
Tüm açık siparişleri belirtilen zamanda nasıl kapatacağımı söyle?
if (HourTime[0]=12)_CloseAllOrder
_CloseAllOrder işlevinin kendisine son sayfada veya sondan önceki sayfada bakın
if (HourTime[0]=12)_CloseAllOrder
_CloseAllOrder işlevinin kendisine son sayfada veya sondan bir önceki sayfada bakın
teşekkürler, işlev çok uygun
Sevgili bilenler,
Lütfen bana bu sonucun nedeninin ne olduğunu söyleyin:
öz:
int start()
{
//----
double c;
int q;
c=0.3/0.1;
q=c;
Print("c=",c," q=",q);
//----
return(0);
}
"c=3 q=2" günlüğüne yazdırır
soru: üçte ikisini nasıl alıyor?
karikatür şu ki, 0.3 yerine 0.4 veya başka bir kesir yerine geçerse beklendiği gibi çözülür
örneğin
{
//----
double c,v;
int q,w;
c=0.3/0.1;
v=0.4/0.1;
q=c;
w=v;
Print("c=",c," q=",q," v=",v," w=",w);
//----
return(0);
}
"c=3 q=2 v=4 w=4" günlüğüne yazdırır
soru: üçte ikisini nasıl alıyor?
derlemeye çalışın, belki bilgisayarım nasıl sayılacağını unuttu (bir tür aptallık ...)
Sevgili bilenler,
Lütfen bana bu sonucun nedeninin ne olduğunu söyleyin:
öz:
int start()
{
//----
double c;
int q;
c=0.3/0.1;
q=c;
Print("c=",c," q=",q);
//----
return(0);
}
"c=3 q=2" günlüğüne yazdırır
soru: üçte ikisini nasıl alıyor?
karikatür şu ki, 0.3 yerine 0.4 veya başka bir kesir yerine geçerse beklendiği gibi çözülür
örneğin
{
//----
double c,v;
int q,w;
c=0.3/0.1;
v=0.4/0.1;
q=c;
w=v;
Print("c=",c," q=",q," v=",v," w=",w);
//----
return(0);
}
"c=3 q=2 v=4 w=4" günlüğüne yazdırır
soru: üçte ikisini nasıl alıyor?
derlemeye çalışın, belki bilgisayarım nasıl sayılacağını unuttu (bir tür aptallık ...)
Bu aptallık değil, gerçek sayılarla çalışırken olağan yuvarlama hataları.
ilk durumda, örneğin, çıktı yuvarlanırken c, 2.999999999'a eşit olacaktır, yani. 3 olacaktır, ancak bir tamsayı tipine atandığında, kesirli kısım atılır.
Bu aptallık değil, gerçek sayılarla çalışırken olağan yuvarlama hataları.
ilk durumda, örneğin c, 2.999999999'a eşit olacaktır...
2.9999'un nasıl sonuçlanacağı belli değil mi? 0.3/0.1=3 tam olarak, 1'i 3'e bölmüyorum ve bu 0.33333 olmalı...
ancak bir tamsayı tipine atandığında, kesirli kısım atılır.
tamsayı tipine c değeri atanır, c herhangi bir kesirli kısım olmaksızın açıkça üçe eşittir. atılacak bir şey yok...
cevap %100 yanlış.
başka seçenekler var mı?
2.9999'un nasıl sonuçlanacağı belli değil mi? 0.3/0.1=3 tam olarak, 1'i 3'e bölmüyorum ve bu 0.33333 olmalı...
Sadece tam olarak görünüyor, ancak makine gösteriminde son bit farklı değerler alabilir. Onlar. 2.9999, 3 veya 3.00000001
Bu tür yanlış anlamalardan kurtulmak için MQL, NormalizeDouble() işlevine sahiptir.