Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım 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
Ayrıca bunu boşuna kullanmayı denedim. Muhtemelen DTS, gerçek değeri değil, görünüm için bir değerin doğruluğunu değiştirir mi? Başka seçenek göremiyorum.
Evet, bence dize, double içindeki değeri yazdırılabilir bir sürümü yapıyor, ancak değiştirmiyor. MQL'de nasıl yapılacağından emin değilim, ancak Java'da bir türden diğerine bir tür dönüştürmeyi zorlayabileceğinizi biliyorum (bu durumda, double'dan int'ye).
http://docs.Oracle.com/javase/specs/jls/se7/html/jls-5.html adresindeki Oracle dokümanlarından. Bu, sunulan kodun sadece küçük bir kısmıdır.
Senin durumunda, şöyle bir şey söyleyeceğine inanıyorum
Açıkçası, adları kodunuza daha iyi uyacak şekilde ayarlamanız gerekir.
http://www.studytonight.com/java/type-casting-in-java da orada yer alıyor. Java ve MQL'nin her ikisinin de C++ tabanlı olması gerektiği için bu size yardımcı olabilir.
@OP ve daha önce yayınlanan tüm MQL4 bağlantılarını okumanın yanı sıra bkz. Çiftlerle Çalışma ve PrintFormat
@ JD4 Java kodunu göndermenin ve Java özelliklerine başvurmanın OP'ye nasıl yardımcı olduğunu anlamıyorum. Ayrıca Java ve C++ benzer ancak C++ tabanlı olduğuna katılmıyorum
Her ne kadar yardımcı olmaya çalışıyor olsanız da, cevaplardan emin olmadığınız zamanlarda verdiğiniz cevapların çoğunun sadece yardım arayan insanların kafasını karıştırdığını düşünüyorum.
@OP ve daha önce yayınlanan tüm MQL4 bağlantılarını okumanın yanı sıra bkz. Çiftlerle Çalışma ve PrintFormat
@ JD4 Java kodunu göndermenin ve Java özelliklerine başvurmanın OP'ye nasıl yardımcı olduğunu anlamıyorum. Ayrıca Java ve C++ benzer ancak C++ tabanlı olduğuna katılmıyorum
Her ne kadar yardımcı olmaya çalışıyor olsanız da, cevaplardan emin olmadığınız zamanlarda verdiğiniz cevapların çoğunun sadece yardım arayan insanların kafasını karıştırdığını düşünüyorum.
Sanırım yazımı yanlış okudunuz. Mql4 OO kesinlikle c++ tabanlıdır. Buna bir itiraz olduğunu düşünmüyorum. Ben senin iddiana atıfta bulundum:
JD4 : Since Java and MQL are both supposed to be based on C++ , this might help you out.
ardından birçok Java referansı gelir. Söyledim -
ydrol : Ayrıca Java ve C++ benzer ancak C++ tabanlı olduğuna katılmıyorum
Özellikle Java referanslarınızdan bahsediyordum. Java bence c++ tabanlı değil.
Her durumda, ondalık sayıları kayan nokta ile temsil etme konusu, daha önce WHRoeder tarafından bahsedilen dizilerde birkaç kez ele alınmıştır.
OP iki ondalık basamağa yuvarlamak istiyor gibi görünüyor, ancak herhangi bir çıktı veya belirli örnekler göndermeden, gördükleri yuvarlama hatasının derecesi göz ardı edilebilir sanırım.
İkisi de yanlış. En yakın tam sayıya yuvarlar. alakasız Bir çift döndürür. 1 = 1.0 = 1.00 = 1.00000 = 1.00000000000000000000000000000000000 SONSUZ BAŞKALAR
Kayan nokta hakkında bilgi edinin. == işlenen. - MQL4 forumu
Sanırım WH'nin geri dönüp tekrar okuması gerekiyor, işlevin gerçekte ne yaptığını değil, sayfanın söylediğini söylüyordum. Ve bilgisayar programlama, veri türleri açısından (int) 1 != (double) 1.000000000 (ad infinitum) olan birkaç yerden biridir.
@ ydrol, MQL/Java/C++ ile ilgili ifadenizle niyetinizin yönünü kaçırdım. Java'nın bir programlama dili olarak kökeni hakkında bir göz atmanız için bazı referans materyalleri.
https://en.wikipedia.org/wiki/Java_(programming_language)
http://www.freejavaguide.com/history.html
İkisi de C++ ile ilgili olarak hemen hemen aynı şeyi söylediğinden, wiki'den gönderecekler. "Dil, sözdiziminin çoğunu C ve C++ 'dan alıyor, ancak her ikisinden de daha az düşük seviyeli olanaklara sahip."
Aynı çağdan itibaren " Bir dilin sözdizimi onun yüzey biçimini tanımlar.". (kıvrımlı parantezler vb.). Bu başlıkta tartışılan şey sözdizimi ile ilgili değildir. Benim düşüncem, MQL ile aynı şekilde 'Java C++'a dayanmaktadır' demek, katılmadığım çok daha güçlü bir ifadedir.
Ancak nitel bir ifade olduğu için aynı anda hem doğru hem de yanlış olabiliriz. Yine de, sorunla önceden verilmiş belirli bir bağlantı olduğunda ve bu sözdizimi ile ilgili bir soru olmadığında, Java özelliklerinin OP'ye nasıl yardımcı olduğunu anlamıyorum.
Bahsettiğiniz her iki makale de Java'nın sözdiziminden ödünç aldığına vurgu yapıyor - ancak bunun dışında pek bir şey yok. Bu, sözdizimi ile ilgili bir sorun değildir.
Ancak bununla ilgili IEEE 754 Diller tarafından da paylaşılan MQL tarafından kullanılan kayan nokta gösterimi. (ve c benzeri sözdizimine sahip olmayan diğerleri - örneğin Pascal, hatta Excel gibi uygulamalar ) ve bunun nedeni, dillerin sözdizimsel benzerliklerinden ziyade çoğu CPU/FPU tarafından desteklenen bir standart olmasıdır. Sorun, ondalık kesirlerin kayan nokta gösteriminin küçük hatalara sahip olmasıdır. OP iki ondalık basamağa yuvarlamak istiyor. IEEE 754 formatı, onda birini (0,1) veya yüzde birini (0.01) doğru şekilde depolayamaz. IEEE 754 ikili biçiminde bunlar yinelenen ikili kesirlerdir (1/3'ün yinelenen bir ondalık kesir olmasıyla aynı şekilde 0.33333... ) - Amaçlanan sayı ile gerçek sayı arasındaki fark oldukça küçüktür (örneğin 0.0000000000001 ) ancak büyük yeter ki
1/10 != 0.1 // muhtemelen
Ve int(0.1 * 10) yanlış yöne dönebilir
Ancak OP tam olarak gördüklerini yayınlamadığından, en iyi tavsiye bu konunun 3. gönderisinde geri verildi, gidin ve MQL konularını okuyun. MQL konuları verildikten sonra Java özelliklerini de okuduklarını ve muhtemelen Java'ya aşina olmadıklarını önermek için bir nokta görmüyorum.
Konu özeti:
Yukarıdakiler, " MathRound bir çift; sonsuz sayıda ondalık basamak döndürür" yazınıza özel bir yanıttı.
Bir kez daha, dokümantasyon sayfasına göre.
" Dönüş Değeri
Değer en yakın tam sayıya yuvarlanır. "
Şimdi, gönderinizin bu bölümüne özel bir yanıt.
" Sayfanın söylediği, yaptığı şeydir. Yuvarlanır. Birden çok ondalık basamak sorusuyla ilgisi yok. "
Tekrar, alıntıyı tekrar okuyun, "En yakın tam sayıya yuvarlanmış değer" döndürdüğünü söylüyor. Bir tamsayı, tanımı gereği, ondalık basamak olmadığı için bir tam sayıdır. Ve yine, gerçekte yaptığı şey bu değilse, o zaman kod veya açıklama bozulur ve birinin veya diğerinin veya her ikisinin de MQ tarafından düzeltilmesi veya bu işlevlerin gerektiği gibi çalışmadığını belirten bir uyarı etiketi gerekir. reklamı yapıldı.
Aslında kendisine verilen türü döndürürse, ancak en yakın tamsayı değerine matematiksel eşdeğerde (1.23456'dan 1.00000 ve 1 == 1.000000 döndürürde olduğu gibi) ancak gerçek bir tamsayı türü döndürmezse, referans sayfasının "Temel veri türünü değiştirmez" gibi bir şey veya açıkça belirtilen başka bir yol belirtin. Bence bu, orijinal Rusça sayfadan düz bir çeviriydi ve bu nedenle İngilizce olması gerektiği kadar net değil.