Condividi tramite


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

abs

Restituire il valore assoluto di int

System::Math::Abs

acos, acosf

Calcolare arcocoseno

System::Math::Acos

asin, asinf

Calcolare arcoseno

System::Math::Asin

atan, atanf, atan2, atan2f

Calcolare arcotangente

System::Math::Atan, System::Math::Atan2

atof, _atof_l, _wtof, _wtof_l

Convertire una stringa di caratteri in un valore a virgola mobile a precisione doppia

System::Convert::ToSingle, System::Convert::ToDouble

Funzioni di Bessel

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.

_cabs

Trovare il valore assoluto di un numero complesso

Non applicabile.

cbrt

Calcolare la radice cubica

Non applicabile.

ceil, ceilf

Trovare il limite massimo dell'intero

System::Math::Ceiling

_chgsign, _chgsignf, _chgsignl

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.

_clear87, _clearfp

Acquisire e cancellare la parola di stato a virgola mobile

Non applicabile.

_control87, _controlfp, __control87_2, _controlfp_s

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.

cos, cosf, cosh, coshf

Calcolare il coseno

System::Math::Cos, System::Math::Cosh

difftime

Calcolare la differenza tra due valori dell'intervallo di tempo specificati

System::DateTime::Subtract

div

Dividere un intero per un altro, ottenendo quoziente e resto

Non applicabile.

_ecvt, _ecvt_s

Convertire double in una stringa di caratteri di una lunghezza specificata

System::Convert::ToString

exp, expf

Calcolare la funzione esponenziale

System::Math::Exp

fabs, fabsf

Trovare il valore assoluto

System::Math::Abs

_fcvt, _fcvt_s

Convertire double in una stringa con un numero di cifre specificato dopo la virgola decimale

System::Convert::ToString

_finite

Determinare se il valore a virgola mobile a precisione doppia specificato è finito

System::Double::IsInfinity

floor, floorf

Trovare il numero intero più grande minore di o uguale all'argomento

System::Math::Floor

fmod, fmodf

Trovare un resto a virgola mobile

System::Math::IEEERemainder

_fpclass

Restituire una parola di stato contenente informazioni sulla classe a virgola mobile

System::Double::IsInfinity, System::Double::IsNegativeInfinity, System::Double::IsPositiveInfinity, System::Double::IsNan

_fpieee_flt

Richiamare il gestore di trap definito dall'utente per le eccezioni IEEE a virgola mobile

Non applicabile.

_fpreset

Reinizializzare il pacchetto matematica a virgola mobile

 

frexp

Calcolare il valore esponenziale

Non applicabile.

_gcvt, _gcvt_s

Convertire un valore a virgola mobile in una stringa di caratteri

System::Convert::ToString

hypot, hypotf, hypotl, _hypot, _hypotf, _hypotl

Calcolare l'ipotenusa di un triangolo rettangolo

Non applicabile.

_isnan

Controllare il valore a virgola mobile a precisione doppia per NaN (non un numero)

System::Double::IsNan

labs

Restituire il valore assoluto di long

System::Math::Abs

ldexp

Calcolare il prodotto dell'argomento e 2exp (potenza specificata)

System::Math::Pow

ldiv

Dividere un long integer per un altro, restituendo quoziente e resto

Non applicabile.

log, logf, log10, log10f

Calcolare logaritmo naturale e in base 10

System::Math::Log, System::Math::Log10

_logb

Estrarre il valore esponenziale dell'argomento a virgola mobile a precisione doppia

Non applicabile.

_lrotl, _lrotr

Spostare unsigned long int a sinistra (_lrotl) o a destra (_lrotr)

Non applicabile.

_matherr

Gestire gli errori matematici

Non applicabile.

__max

Restituire il più grande di due valori

System::Math::Max

__min

Restituire il più piccolo di due valori

System::Math::Min

modf, modff

Dividere l'argomento in numero intero e frazione

Non applicabile.

nan, nanf, nanl

Restituire un valore NaN non interattivo

System::Double::NaN

_nextafter

Restituire il prossimo vicino rappresentabile

Non applicabile.

pow, powf

Calcolare il valore elevato a potenza

System::Math::Pow

printf, _printf_l, wprintf, _wprintf_l, printf_s, _printf_s_l, wprintf_s, _wprintf_s_l

Scrivere dati su stdout rispettando il formato specificato

System::Console::Write, System::Console::WriteLine

rand, rand_s

Ottenere un numero pseudocasuale

System::Random Class

rint, rintf, rintl

Arrotondare all'intero più vicino nel formato a virgola mobile

System::Math::Round

_rotl, _rotr

Spostare unsigned int a sinistra (_rotl) o a destra (_rotr)

Non applicabile.

_scalb

Elevare l'argomento alla potenza di 2

Non applicabile.

scalbn, scalbnf, scalbnl, scalbln, scalblnf, scalblnl

Moltiplicare per la potenza integrale di FLT_RADIX

Non applicabile.

scanf, wscanf, scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l

Leggere dati da stdin nel formato specificato e scriverli nella posizione specificata

System::Console::Read, System::Console::ReadLine

_set_controlfp

Impostare nuovo valore della parola di controllo

Non applicabile.

sin, sinf, sinh, sinhf

Calcolare il seno o il seno iperbolico

System::Math::Sin, System::Math::Sinh

sqrt

Trovare la radice quadrata

System::Math::Sqrt

srand

Inizializzare serie pseudocasuale

System::Random Class

_status87, _statusfp, _statusfp2

Ottenere parola di stato a virgola mobile

Non applicabile.

strtod, _strtod_l, wcstod, _wcstod_l

Convertire una stringa di caratteri in un valore a precisione doppia

System::Convert::ToDouble

tan, tanf, tanh, tanhf

Calcolare la tangente o tangente iperbolica

System::Math::Tan, System::Math::Tanh

Vedere anche

Riferimenti

Routine di runtime per categoria