Funkcja string DoubleToStr() konwertuje liczbę zmiennoprzecinkową w tekst z możliwością wskazania ilości cyfr po znaku dziesiętnym. Więcej informacji można znaleźć w specyfikacji MQL4.
#property strict
void OnStart()
{
//--- wyświetlić liczbę 0.123456789 z różną dokładnością
double value = 0.123456789;
int precision = 4;
string result = DoubleToStr(value, precision); // result = 0.1235
Print("1) result = ",result);
Print("2) DoubleToStr(0.123456789) = ",DoubleToStr(0.123456789)); /* wynik = 0.12345679, tj. 8 cyfr po kropce
ponieważ drugi argument domyślnie = 8 */
//--- wyświetlić z dokładnością 16 cyfr po kropce
Print("3) DoubleToStr(0.123456789,16) = ",DoubleToStr(0.123456789,16));
//--- wyświetlić w formacie naukowym
Print("4) DoubleToStr(0.123456789,-4) = ",DoubleToStr(0.123456789,-4));
Print("5) DoubleToStr(0.123456789,-16) = ",DoubleToStr(0.123456789,-16));
}
Jeśli drugi argument będzie równy od 0 do 16 to tekstowe przedstawienie liczby będzie miało odpowiednią ilość cyfr po kropce. Jeśli od -1 do -16 to liczba zostanie wyświetlona w formacie naukowym (rys. 1, przykłady 4 i 5). Ostatnia cyfra zostaje zaokrąglona zgodnie z zasadą matematyki.
Rys. 1. Przykłady stosowania funkcji DoubleToStr().
Zamiast DoubleToStr() zalecane jest stosowanie funkcji DoubleToString() . Zobacz lekcję 3.9. Przekształcenie double do string.