Funcții de conversie floating point

Aici Valoarea - valoare care urmează să fie convertită, Format - unul dintre formatele predefinite. Cu toate că această opțiune are TFloatFormat tip, ea are o mulțime de a face cu tipurile de modificări ale funcției Format (acestea sunt legate pe masa propuse). parametru de precizie specifică numărul total de caractere din șirul de ieșire, și nu trebuie să depășească 7 pentru parametrul de tip real single, 15 - 18 și pentru Double - pentru Extended. Digits - acest parametru este interpretat ca o funcție de valoarea Format:

Știința ffExponent tip de format corespunde e de precizie specifică numărul total de caractere, cifre -. Numărul de caractere în exponent

ffFixed format punct fix; Acesta corespunde tipului f. Precizia specifică numărul total de caractere, cifre - numărul de zecimale (0-18). Dacă Precizie mică valoare pentru a reprezenta numere utilizând formatul științific.

ffGeneral format de tip generalizat corespunde d (descrierea funcției cm. Format).

ffNumber diferă de prezența fTFixed delimitatoarele mii (vezi. tipul de conversie n).

ffCurrency Respectă tip de conversie t. Parametrul Digits definește numărul de caractere după virgulă în linia de ieșire (0-18).

În cazul în care valorile funcției transmise Valoare, ocazii speciale coprocessor ( „non-număr“, plus și minus infinit) corespunzătoare, respectiv, returnează șirul „NAN“, „INF“ și „-INF“.

În cele din urmă, capacitatea de a finaliza funcția de gestionare format prevede FormatFloat:

Funcția FormatFloat (Format const: string; Valoare: Extended): string;

Se convertește numărul la un șir de caractere, în conformitate cu specificatorul formatul conținut în formatul de parametri. Regulile sale precizează următoarele:

0 cifre Golf. Dacă valoarea formatată a unei cifre în această poziție, se introduce, în caz contrar se introduce 0.

cifre # Golf. Dacă valoarea formatată a unei cifre în această poziție, se introduce, se introduce altfel nimic.

punctul de golf zecimal. Aceasta introduce o DecimalSeparator constantă definită.

; Golf mii separator. Aceasta înseamnă că un grup de trei cifre, numărând la stânga punctului zecimal, sunt separate printr-un simbol special (acesta este definit de o ThousandSeparator constantă). Locul de amplasare câmp poate fi arbitrară.

E +, E, e + reprezentare e-semne ale numărului în format științific. Apariția oricăruia dintre aceste argumente înseamnă că numărul va fi tradus caracteristica și mantisa. Introducerea de zerouri după acest argument pentru a determina lățimea mantisei. Diferența dintre E +, E + și E, e, că, în primele două cazuri, a pus „+“ pentru a afișa numere pozitive.

„Xx“ Caractere „xx“ ghilimele duble sau convenționale incluse direct în șirul de ieșire.

; Desparte specificatorilor format pentru numere pozitive, negative și de zero.

1. Numărul este întotdeauna rotunjit la precizia specificată de programator care permite ca numărul de câmpuri pentru a se potrivi cifre ( „0“ și „#“).

2. În cazul în care numărul de convertit la stânga punctului zecimal este cifre semnificative mai mari decât câmpurile specificate pentru a le adapta, numerele încă adăugat la linia. În cazul în care câmpul nu este suficient pentru dreapta punctului, există o rotunjire.

3. Simbolul „;“ Acesta vă permite să setați trei formatul de ieșire diferite pentru numere cu diferite semne. Versus numărul de formate sunt utilizate după cum urmează:

• O: se aplică tuturor numerelor;

• două: prima este folosit pentru un număr mai mare sau egal cu zero, al doilea - pentru negativ;

• Trei: pervsh se aplică pozitiv, al doilea - pentru numere negative, iar al treilea - la zero.

Dacă formatul pentru numere negative sau zero, sunt goale, folosiți formatul pentru numere pozitive.

În cazul în gol formatul pentru numere pozitive, sau format general Specificator nu este specificat (string gol), numerele sunt formatate în conformitate cu formatul generic (ca în funcția FloatToStr). Această formatare este, de asemenea, utilizat în cazul în care numărul de cifre semnificative la stânga punctului zecimal mai mare de 18 și nu este dat un format științific.

specificator Aplicarea este ilustrat în tabelul de conversie Exemplu patru numere:

1 0 1234 -1234 0

Reguli generale pentru comunicarea în funcție de linie sunt după cum urmează:

• permis ambele formate științifice și fixe;

• ca punct zecimal trebuie să servească un simbol conținut în DecimalSeparator;

• Nu este permis mii delimitator caractere (ThousandSeparator), precum și simboluri reprezintă unități denezhnk.

În cazul funcției de eroare de conversie StrToFloat aruncă o EConvertError excepție, un TextToFloat - returnează valoarea False.