NormalizeDouble kullanarak MT4'te sayıları yuvarlama - sayfa 11

 
Алексей Тарабанов :

Evet ve seninki yanlış, üzgünüm ...

Niye ya?

 void OnStart ()
  {
   for ( int i= 1 ;i<= 9 ;i++)
     {
       double v1= 0.1 *i;

       Print ( "v1 = " ,v1, " = " , DoubleToString ( MathCeil (v1), 2 ));
     }
  }

0 22:49:08.463 ! GBPUSDbc,H1 testleri: v1 = 0.1 = 1.00

0 22:49:08.463 ! GBPUSDbc,H1 testleri: v1 = 0.2 = 1.00

0 22:49:08.463 ! GBPUSDbc,H1 testleri: v1 = 0.3 = 1.00

0 22:49:08.463 ! GBPUSDbc,H1 testleri: v1 = 0.4 = 1.00

0 22:49:08.463 ! GBPUSDbc,H1 testleri: v1 = 0.5 = 1.00

0 22:49:08.463 ! GBPUSDbc,H1 testleri: v1 = 0.6 = 1.00

0 22:49:08.463 ! GBPUSDbc,H1 testleri: v1 = 0.7 = 1.00

0 22:49:08.463 ! GBPUSDbc,H1 testleri: v1 = 0.8 = 1.00

0 22:49:08.463 ! GBPUSDbc,H1 testleri: v1 = 0.9 = 1.00

Örneğiniz:

0.1+0.5=0.6 = 1

0.2+0.5=0.7 = 1

0,3+0,5=0,8 = 1

0,4+0,5=0,9 = 1

0,5+0,5=1,0 = 1

0,6+0,5=1,1 = 1

0,7+0,5=1,2 = 1

0,8+0,5=1,3=1

0.9+0.5=1.4=1

 
lilita bogachkova :

Niye ya?

0 22:49:08.463 ! GBPUSDbc,H1 testleri: v1 = 0.1 = 1.00

0 22:49:08.463 ! GBPUSDbc,H1 testleri: v1 = 0.2 = 1.00

0 22:49:08.463 ! GBPUSDbc,H1 testleri: v1 = 0.3 = 1.00

0 22:49:08.463 ! GBPUSDbc,H1 testleri: v1 = 0.4 = 1.00

0 22:49:08.463 ! GBPUSDbc,H1 testleri: v1 = 0.5 = 1.00

0 22:49:08.463 ! GBPUSDbc,H1 testleri: v1 = 0.6 = 1.00

0 22:49:08.463 ! GBPUSDbc,H1 testleri: v1 = 0.7 = 1.00

0 22:49:08.463 ! GBPUSDbc,H1 testleri: v1 = 0.8 = 1.00

0 22:49:08.463 ! GBPUSDbc,H1 testleri: v1 = 0.9 = 1.00

Örneğiniz:

0.1+0.5=0.6 = 1

0.2+0.5=0.7 = 1

0,3+0,5=0,8 = 1

0,4+0,5=0,9 = 1

0,5+0,5=1,0 = 1

0,6+0,5=1,1 = 1

0,7+0,5=1,2 = 1

0,8+0,5=1,3=1

0.9+0.5=1.4=1

"int A = double B + 0.5" ifadesi çözüldüğü için: int A = (int) MathCeil (double B); yanlış.
 
Алексей Тарабанов :
Çünkü: "int A = double B + 0.5" ifadesi çözülmüştür: int A = (int)MathCeil(double B); yanlış.
Peki nasıl çözülecek?
 
lilita bogachkova :
Peki nasıl çözülecek?
Bu doğru, yani. söylediğim gibi. Önce kesirli sayıya 0,5 eklenir ve daha sonra kesirli kısım sonuçtan kesilir ve bir tam sayıya yuvarlamanın sonucu kalır.
 
Dmitry Fedoseev :

Ve öyle olsa bile?

sonra 5
 
Алексей Тарабанов :
Bu doğru, yani. söylediğim gibi. Önce kesirli sayıya 0,5 eklenir ve daha sonra kesirli kısım sonuçtan kesilir ve bir tam sayıya yuvarlamanın sonucu kalır.
Kod mu?
 
lilita bogachkova :
Peki nasıl çözülecek?
Açıklayamaz. Onu rahatsız etme. gyyy
 
Vasyl Nosal :
Kod mu?
int A = çift B + 0,5
 
Алексей Тарабанов :
Bu doğru, yani. söylediğim gibi. Önce kesirli sayıya 0,5 eklenir ve daha sonra kesirli kısım sonuçtan kesilir ve bir tam sayıya yuvarlamanın sonucu kalır.
Peki, o zaman servis masasına böyle bir ekstra fonksiyon MathCeil () ile geldiklerini yazmanız gerekiyor :)
 
Vasyl Nosal :
Açıklayamaz. Onu rahatsız etme. gyyy
Vasya, lütfen konuşma zahmetine girme