Supporto a virgola mobile
Molte funzioni della libreria di runtime Microsoft richiedono il supporto della virgola mobile da un coprocessore matematico o dalle relative librerie fornite insieme al compilatore. Le funzioni di supporto della virgola mobile vengono caricate solo se sono richieste.
Quando si usa un identificatore di tipo a virgola mobile nella stringa di formato di una chiamata a una funzione nella famiglia printf o scanf, è necessario specificare un valore a virgola mobile o un puntatore a quest'ultimo nell'elenco degli argomenti, al fine di informare il compilatore della necessità di attivare il supporto della virgola mobile.
Per il codice di esempio che mostra come gestire le eccezioni correlate alla virgola mobile, vedere _fpieee_flt.
Il controllo della precisione della virgola mobile per i valori intermedi è affidato alle funzioni _control87, _controlfp, __control87_2. Per impostazione predefinita, il controllo della precisione in _controlfp è impostato su 53 bit (_PC_53). Il collegamento tramite FP10.OBJ modifica il controllo della precisione predefinito in 64 bit (_PC_64). Nella riga di comando del linker FP10.OBJ deve trovarsi prima di LIBC.LIB, LIBCMT.LIB o MSVCRT.LIB.
Funzioni a virgola mobile
Routine |
Uso |
Equivalente .NET Framework |
---|---|---|
Restituire il valore assoluto di int |
||
Calcolare arcocoseno |
||
Calcolare arcoseno |
||
Calcolare arcotangente |
||
Convertire una stringa di caratteri in un valore a virgola mobile a precisione doppia |
||
Calcolare le funzioni di Bessel _j0, _j1, _jn, _y0, _y1, _yn |
Non applicabile. Per chiamare la funzione C standard, usare PInvoke. Per altre informazioni, vedere Esempi di platform invoke. |
|
Trovare il valore assoluto di un numero complesso |
Non applicabile. |
|
Calcolare la radice cubica |
Non applicabile. |
|
Trovare il limite massimo dell'intero |
||
Invertire il segno di un argomento a virgola mobile a precisione doppia o di un argomento lungo a virgola mobile a precisione doppia |
Non applicabile. |
|
Acquisire e cancellare la parola di stato a virgola mobile |
Non applicabile. |
|
Acquisire la parola di controllo a virgola mobile precedente e impostare un nuovo valore della parola di controllo |
Non applicabile. |
|
copysign, copysignf, copysignl, _copysign, _copysignf, _copysignl |
Restituire un valore con il segno di un altro valore |
Non applicabile. |
Calcolare il coseno |
||
Calcolare la differenza tra due valori dell'intervallo di tempo specificati |
||
Dividere un intero per un altro, ottenendo quoziente e resto |
Non applicabile. |
|
Convertire double in una stringa di caratteri di una lunghezza specificata |
||
Calcolare la funzione esponenziale |
||
Trovare il valore assoluto |
||
Convertire double in una stringa con un numero di cifre specificato dopo la virgola decimale |
||
Determinare se il valore a virgola mobile a precisione doppia specificato è finito |
||
Trovare il numero intero più grande minore di o uguale all'argomento |
||
Trovare un resto a virgola mobile |
||
Restituire una parola di stato contenente informazioni sulla classe a virgola mobile |
System::Double::IsInfinity, System::Double::IsNegativeInfinity, System::Double::IsPositiveInfinity, System::Double::IsNan |
|
Richiamare il gestore di trap definito dall'utente per le eccezioni IEEE a virgola mobile |
Non applicabile. |
|
Reinizializzare il pacchetto matematica a virgola mobile |
|
|
Calcolare il valore esponenziale |
Non applicabile. |
|
Convertire un valore a virgola mobile in una stringa di caratteri |
||
Calcolare l'ipotenusa di un triangolo rettangolo |
Non applicabile. |
|
Controllare il valore a virgola mobile a precisione doppia per NaN (non un numero) |
||
Restituire il valore assoluto di long |
||
Calcolare il prodotto dell'argomento e 2exp (potenza specificata) |
||
Dividere un long integer per un altro, restituendo quoziente e resto |
Non applicabile. |
|
Calcolare logaritmo naturale e in base 10 |
||
Estrarre il valore esponenziale dell'argomento a virgola mobile a precisione doppia |
Non applicabile. |
|
Spostare unsigned long int a sinistra (_lrotl) o a destra (_lrotr) |
Non applicabile. |
|
Gestire gli errori matematici |
Non applicabile. |
|
Restituire il più grande di due valori |
||
Restituire il più piccolo di due valori |
||
Dividere l'argomento in numero intero e frazione |
Non applicabile. |
|
Restituire un valore NaN non interattivo |
||
Restituire il prossimo vicino rappresentabile |
Non applicabile. |
|
Calcolare il valore elevato a potenza |
||
printf, _printf_l, wprintf, _wprintf_l, printf_s, _printf_s_l, wprintf_s, _wprintf_s_l |
Scrivere dati su stdout rispettando il formato specificato |
|
Ottenere un numero pseudocasuale |
||
Arrotondare all'intero più vicino nel formato a virgola mobile |
||
Spostare unsigned int a sinistra (_rotl) o a destra (_rotr) |
Non applicabile. |
|
Elevare l'argomento alla potenza di 2 |
Non applicabile. |
|
Moltiplicare per la potenza integrale di FLT_RADIX |
Non applicabile. |
|
Leggere dati da stdin nel formato specificato e scriverli nella posizione specificata |
||
Impostare nuovo valore della parola di controllo |
Non applicabile. |
|
Calcolare il seno o il seno iperbolico |
||
Trovare la radice quadrata |
||
Inizializzare serie pseudocasuale |
||
Ottenere parola di stato a virgola mobile |
Non applicabile. |
|
Convertire una stringa di caratteri in un valore a precisione doppia |
||
Calcolare la tangente o tangente iperbolica |