Double vs FLOAT - anlaşılmaz MathFloor hatası - sayfa 3

 

Print() ile Journal'a yazdırıldığında normalleştirilmiş bir sayının beklediğinizden daha fazla ondalık basamak içerebileceğini unutmayın. Örneğin,

o zaman yorumda aynı

 
fxsaber :
#define TOSTRING(A) #A + " = " + ( string )(A) + " "

void OnStart ()
{
   double Price1 = 105143 ;
   double Price2 = Price1 - 1 e- 11 ;

   Print (TOSTRING(Price1) + TOSTRING( MathFloor (Price1)) +
        TOSTRING(Price2) + TOSTRING( MathFloor (Price2)) +
        TOSTRING(Price1 > Price2));
}
Sonuç
Price1 = 105143.0 MathFloor (Price1) = 105143.0 Price2 = 105143.0 MathFloor (Price2) = 105142.0 Price1>Price2 = true
Çift sayıların çıktısını tam anlamıyla almayın.

Teşekkür ederim. Muhtemelen yine de doğru çözümü buldum ama yanlış çıktı yüzünden yanlışlıkla günah işledim.!

 

Normalleştirilmemiş bir sayıyı başka bir normalleştirilmemiş sayıya bölmenin geri kalanı , sonuç zaten normalleştirilmemiştir.

Genel olarak, zayıf ruhlara zarar vermemek için bu işlev dilden çıkarılmalıdır.

 
Vladislav Andruschenko :

belki doğru çözümü buldum

Ne yazık ki, kodunuz ne yaptığınıza dair tam bir anlayış eksikliğinin bir göstergesidir. Sorunu anlamaya çalışın.
 
Dmitry Fedoseev :

Normalleştirilmemiş bir sayıyı başka bir normalleştirilmemiş sayıya bölmenin geri kalanı , sonuç zaten normalleştirilmemiştir.

Genel olarak, zayıf ruhlara zarar vermemek için bu işlev dilden çıkarılmalıdır.

Yani her şey normale dönüyor. Ne komik yiyorum.
 
Vladislav Andruschenko :
Yani her şey normale dönüyor. Ne komik yiyorum.
İşaretlerin kaybolmasına neden olan gereksiz dönüşümler yapıyorsunuz.

Normalleştirmeyi yalnızca hesaplama sonuçlarını doğrudan kullanmadan önce yapın. Bundan önce, mümkün olduğunda tüm sayı dökümlerinden ve dönüşümlerden kaçının.
 
Andrey Dik :
İşaretlerin kaybolmasına neden olan gereksiz dönüşümler yapıyorsunuz.
Bunlar zaten çaresiz kodlar ..... Farklı şekillerde yaptım. Ama yukarıda söylendiği gibi. Muhtemelen yanlış kabul ettiğim için bir hataya günah işledim. Her ne kadar kodda bu değişkenler bir aksaklık olsa da.

Yardımlarınız ve önerileriniz için hepinize teşekkür ederim. Ama şamandıra ile her şey iyi çalışıyor.
 
Vladislav Andruschenko :
şamandıra ile her şey iyi çalışıyor.
En kötü tavsiyelerden biri, çiftten şamandıraya geçmektir.
 
Vladislav Andruschenko :
Yani her şey normale dönüyor. Ne komik yiyorum.
Hangi bilinmeyen yerde normalleştirildi?
 
Vladislav Andruschenko :
Bunlar zaten çaresiz kodlar ..... Farklı şekillerde yaptım. Ama yukarıda söylendiği gibi. Muhtemelen yanlış kabul ettiğim için bir hataya günah işledim. Her ne kadar kodda bu değişkenler bir aksaklık olsa da.

Yardımlarınız ve önerileriniz için hepinize teşekkür ederim. Ama şamandıra ile her şey iyi çalışıyor.
float, herhangi bir avantaj sağlamayan sayıların hadım edilmesidir. Dönüşümlerdeki tüm kayıplarla daha iyi başa çıkın ve mümkün olan en yüksek hassasiyeti kullanın - iki katı.
Neden: