
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
Yani DBL_EPSILON 16 ondalık basamaktır: 2.2204460492503131e-016
Ve senin durumunda, aslında bir olduğu ortaya çıkıyor, çünkü. fark sadece 1e-16, yani epsilon'dan 2 kat daha az.
0.99999999999999997 ile çalışır, ancak 0.99999999999999998 ile çalışmaz.
0.99999999999999997 ile çalışır, ancak 0.99999999999999998 ile çalışmaz.
İşte başka bir şaka:
Ondalık gösterimdeki 2.2204460492503131e-016 sayısı, çift biçimin çözünürlüğü anlamına gelir ( https://msdn.microsoft.com/en-us/library/6bs3y5ya(v=vs.100).aspx ), bu
En küçük pozitif sayı x, öyle ki x + 1.0, 1.0'a eşit değil.
1.0 eklenmesi sayının değerini değiştirecek şekilde en küçük pozitif sayıdır. Başka bir deyişle, bu bir sayının temsilindeki göreli hatadır. Yani, 16 için bu sınır çok fazla ondalık dokuz içerecek ve sonunda 64 için 1'den 4 kat daha fazla bir fark olacak, 8 için iki kat daha az olacak. Bu nedenle, mümkün olan en yüksek doğrulukla yuvarlamayı hızlandırmak için bu doğruluğun hesaplanması gerekecektir. Bu hesaplamaların normal yuvarlama işlevlerinin yürütülmesinden daha hızlı gerçekleşmesi olası değildir. MQL, sayıların adresleriyle doğrudan çalışmanıza izin vermediğinden, sayıdaki sipariş bitlerini almak mümkün olmayacaktır, taban 2'de log fonksiyonunun bir analogunu bulmanız gerekecektir. hızlı bir şekilde.
İşte başka bir şaka:
Herhangi bir matematiksel eylemin hem olumlu hem de olumsuz olabilen ek bir hata getirdiği ortaya çıktı. Bu nedenle, genel durumda, Vladimir'in belirttiği gibi, sonucu normalleştirmek gerekir.
ceil(), floor()'ın tekrarlanması olası değildir, çünkü FPU yuvarlama modu µl'den kontrol edilemez. Muhtemelen aşağı yukarı yeterince çalışacak tek şey round() ve bu tam olarak standarda göre değil. Bu arada, C'nin round() şuna benziyor:
misal: buna sayı biçimi değiştiğinde kesinlik kaybı denir.
Sonuç olarak
Samimi olarak.
Burada neyi yuvarlamak istediğinizi anlamak için, DOUBLE formatını INT formatına dönüştürürken tam olarak nasıl ve neyin kaybolduğunu bilmeniz gerekir. bu durumda, kesimden sonra kalan sadece bir kısmını alırsınız. sonuç olarak, herhangi bir sayıda ondalık basamaklı herhangi bir sayı ve ondalık noktadan sonraki herhangi bir basamak silinecek ve yalnızca tamsayı kısmı kalacaktır.
örnek: buna sayı biçimini değiştirirken kesinlik kaybı denir.
Sonuç olarak
Samimi olarak.
Neden bu kadar zor:
Bu seçenek neden daha basit olandan daha iyi?
Herhangi bir matematiksel eylemin hem olumlu hem de olumsuz olabilen ek bir hata getirdiği ortaya çıktı. Bu nedenle, genel durumda, Vladimir'in belirttiği gibi, elde edilen sonucun normalleştirilmesi gerekir.
ceil(), floor()'ın tekrarlanması olası değildir, çünkü FPU yuvarlama modu µl'den kontrol edilemez. Muhtemelen az çok yeterli şekilde çalışacak tek şey yuvarlak ()'dir ve bu tam olarak standarda uygun değildir. Bu arada, C'nin round() şuna benziyor:
Elbette haklısın. Ama tekrar edeceğim. Görevlerin %99,9'u için, yuvarlama işlevlerini (int) veya (long)'a kesirli tür dönüştürmeyi kullanarak alternatif daha hızlı bir seçenekle değiştirmek kesinlikle yasaldır. Deneyimli bir programcının bu gerçeğin farkında olması ve uygun olduğunda uygulaması yeterlidir.
Neden bu kadar zor:
Bu seçenek neden daha basit olandan daha iyi?
bunu da deneyebilirsiniz.
Deneyimli bir programcının bu gerçeğin farkında olması ve uygun olduğunda uygulaması yeterlidir.
O olması gereken bir şey değil, bunu bilmek zorunda.
PS, formülünüz tüm değer kümesi için doğru değil.Samimi olarak.
Benimkini kontrol et, turu kısa bir formülle güncelledim, liste artık eksiksiz ve tamamen işlevsel, keyfini çıkarın.
PS, formülünüz tüm değer kümesi için doğru değil.
Benimkini kontrol et, turu kısa bir formülle güncelledim, liste artık eksiksiz ve tamamen işlevsel, keyfini çıkarın.yukarıya bakın
x = 3 (herhangi bir tamsayı) olduğunda bir karışıklık vardır :))