0,02*4,9=0,098 -- 0,98 değil
ondalık noktadan sonra 2 basamak formatında çıktı alırken -- 0.098 çıktısı yuvarlama kurallarına göre 0.10'a yuvarlanır
3 karakter formatında çıktı alırsanız, tam sayı görüntülenecektir.
0,02*4,9=0,098 -- 0,98 değil
ondalık noktadan sonra 2 basamak formatında çıktı alırken -- 0.098 çıktısı yuvarlama kurallarına göre 0.10'a yuvarlanır
3 karakter formatında çıktı alırsanız, tam sayı görüntülenecektir.
Teşekkürler, rakamları düzelttim.
Sorun şu ki, ondalık noktadan sonra 2 basamak almanız gerekiyor. :) Neden yuvarlanıyor? Yuvarlama yapmadan ve ondalık noktadan (0.09) sonra sadece 2 basamaklı bir kesirli sayıyı nasıl alabilirsiniz?
Teşekkürler, rakamları düzelttim.
Sorun şu ki, ondalık noktadan sonra 2 basamak almanız gerekiyor. :) Neden yuvarlanıyor? Yuvarlama yapmadan ve ondalık noktadan (0.09) sonra sadece 2 basamaklı bir kesirli sayıyı nasıl alabilirsiniz?
Teşekkürler, rakamları düzelttim.
Sorun şu ki, ondalık noktadan sonra 2 basamak almanız gerekiyor. :) Neden yuvarlanıyor? Yuvarlama yapmadan ve ondalık noktadan (0.09) sonra sadece 2 basamaklı bir kesirli sayıyı nasıl alabilirsiniz?
int a= int ( 0.098 / 0.01 ); double b=a* 0.01 ; Comment ( DoubleToString (b, 2 ));
bir dizgeye çevir ve gerekli sayıda karakteri al
Ve daha iyi bir yol bilmiyorsun
Ve öyle olsa bile:
int a= int (( 0.09 * 5 )/ 0.01 ); double b=a* 0.01 ; Comment ( DoubleToString (b, 2 ));
Ardından çıktıda gerekli 0,45 yerine 0,44 elde ederiz.
Ve öyle olsa bile:
Daha sonra çıktıda gerekli 0,45 yerine 0,44 elde ederiz.
int a= int ( MathFloor (( 0.98 )/ 0.001 )); double b=a* 0.001 ; Comment ( DoubleToString (b, 2 ));
0.098, 0.98 değil. :)
int a = int ( MathFloor (( 0.098 ) / 0.001 )); double b = a * 0.001 ; Comment ( DoubleToString (b, 2 ));
1 döndürür, ancak tam değeri = 0,09 istedim.
Ve daha iyi bir yol bilmiyorsun
Aklıma ilk bu geldi tabi daha kolayları da var.
Bu arada, bu da zor değil, belki daha yavaş çalışır:
int DIGITS= 2 ; string stroka= DoubleToString ( 0.09845 , 8 ); int P= StringFind (stroka, "." ); Print (stroka); stroka= StringSubstr (stroka, 0 ,P+DIGITS+ 1 ); Print ( StringToDouble (stroka)); возвращает: 2014.10.04 11:32:53.731 normalize EURUSD,H4: 0.09 2014.10.04 11:32:53.731 normalize EURUSD,H4: 0.09845000
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Selamlar. Bir görevle ilgili yardıma ihtiyacınız var:
Tüm işlevler 0.1 döndürür. (0.02*4.9) = 0.098 olmasına rağmen ve 0.09 döndürmelidir.
Hesap makinemin tam olarak döndürdüğü değeri tam olarak nasıl elde edeceğimi söyle? :)