"Tam" değeri elde etmek mümkün mü? - sayfa 4

[Silindi]  
sanyooooook :

hangi işlevi kastediyorsun?

ilk satırdan mı yoksa NL'den mi?

NL işlevi.

Öyleyse:

NL ( 2 , 0.09 * 5 ); // 0.44

Bu 0.45 yerine 0.44 verir.

 
WePlexus :

NL işlevi.

Öyleyse:

Bu 0.45 yerine 0.44 verir.


   Print (NL(DIGITS, 0.45 ));
2014.10 . 04 13 : 13 : 03.089 normalize EURUSD,H4: 0.45
 
WePlexus :

NL işlevi.

Öyleyse:

Bu 0.45 yerine 0.44 verir.

bunun nedeni: MathFloor (değer/adım)=44

giriş 44.999999999999999'dur ve bu fonksiyon aşağıdan en yakın tamsayıyı döndürür.

neden: değer/adım(0.45/0.01)=44.999999999999999 bu benim için bir soru değil)

[Silindi]  
sanyooooook :

bunun nedeni: MathFloor(değer/adım)=44

giriş 44.999999999999999'dur ve bu fonksiyon aşağıdan en yakın tamsayıyı döndürür.

neden: değer/adım (0.45*100)=44.999999999999999 bu benim için bir soru değil)

Teşekkür ederim. :)
 
WePlexus :
Teşekkür ederim. :)
mesajdaki hatayı düzelttim
 
WePlexus :
Teşekkür ederim. :)

yani işleviniz doğru)

Bu arada, bu durumda, benimki dışındaki tüm fonksiyonlar 0.45 verir))

 
bu, işlevi kullanmadan önce giriş verilerini kontrol etmeniz ve hangi sayıya bağlı olarak bu veya bu işlevi seçmeniz gerektiği anlamına gelir)
 
sanyooooook :

yani işleviniz doğru)

Bu arada, bu durumda, benimki dışındaki tüm fonksiyonlar 0.45 verir))

Sanyok, sen bir aldatıcısın.

benim işlevim:

 //double d=0.019999999999999999;
double d= 0.09 * 5 ;
double e=( int )(d* 100 )/ 100.0 ;
Print ( "e=" ,e);
=0.44 verir
[Silindi]  
abolk :

benim işlevim

=0.44 verir
Evet, ancak hesap makinesinde 0,09*5= 0,45 yazıyor. :)
 
WePlexus :
Bu doğru ve hesap makinesindeki sonuç 0.45'tir. :)

ilk başta dikkat etmemiştim