std::numeric_limits::epsilon

Da cppreference.com.

 
 
Utilità libreria
Tipo di supporto (basic types, RTTI, type traits)
Gestione della memoria dinamica
La gestione degli errori
Programma di utilità
Funzioni variadic
Data e ora
Funzione oggetti
initializer_list(C++11)
bitset
hash(C++11)
Gli operatori relazionali
Original:
Relational operators
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
rel_ops::operator!=
rel_ops::operator>
rel_ops::operator<=
rel_ops::operator>=
Coppie e tuple
Original:
Pairs and tuples
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
pair
tuple(C++11)
piecewise_construct_t(C++11)
piecewise_construct(C++11)
Swap, in avanti e spostare
Original:
Swap, forward and move
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
swap
forward(C++11)
move(C++11)
move_if_noexcept(C++11)
declval(C++11)
 
Tipo di supporto
Tipi base
Original:
Basic types
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Tipi fondamentali
Larghezza fissa interi tipi(C++11)
Limiti numerici
Original:
Numeric limits
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
numeric_limits
C numerico limita interfaccia
Informazioni sul tipo di runtime
Original:
Runtime type information
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Tipo tratti
Original:
Type traits
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Categorie di tipo primario
Original:
Primary type categories
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
is_void(C++11)
is_array(C++11)
is_pointer(C++11)
is_enum(C++11)
is_union(C++11)
is_class(C++11)
is_function(C++11)
is_reference(C++11)
is_lvalue_reference(C++11)
is_rvalue_reference(C++11)
is_member_pointer(C++11)
is_member_object_pointer(C++11)
is_member_function_pointer(C++11)
Proprietà del tipo
Original:
Type properties
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
is_const(C++11)
is_volatile(C++11)
is_pod(C++11)
is_empty(C++11)
is_polymorphic(C++11)
is_abstract(C++11)
Operazioni supportate
Original:
Supported operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
is_constructible
is_trivially_constructible
is_nothrow_constructible
(C++11)
(C++11)
(C++11)
is_default_constructible
is_trivially_default_constructible
is_nothrow_default_constructible
(C++11)
(C++11)
(C++11)
is_copy_constructible
is_trivially_copy_constructible
is_nothrow_copy_constructible
(C++11)
(C++11)
(C++11)
is_move_constructible
is_trivially_move_constructible
is_nothrow_move_constructible
(C++11)
(C++11)
(C++11)
is_assignable
is_trivially_assignable
is_nothrow_assignable
(C++11)
(C++11)
(C++11)
is_copy_assignable
is_trivially_copy_assignable
is_nothrow_copy_assignable
(C++11)
(C++11)
(C++11)
is_move_assignable
is_trivially_move_assignable
is_nothrow_move_assignable
(C++11)
(C++11)
(C++11)
is_destructible
is_trivially_destructible
is_nothrow_destructible
(C++11)
(C++11)
(C++11)
has_virtual_destructor(C++11)
I rapporti e le query di proprietà
Original:
Relationships and property queries
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
is_same(C++11)
is_base_of(C++11)
is_convertible(C++11)
alignment_of(C++11)
rank(C++11)
extent(C++11)
Tipo modifiche
Original:
Type modifications
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Tipo di trasformazioni
Original:
Type transformations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
aligned_storage(C++11)
aligned_union(C++11)
decay(C++11)
enable_if(C++11)
Digitare costanti tratto
Original:
Type trait constants
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
integral_constant(C++11)
 
 
static T epsilon()
(fino al c++11)
staticconstexpr T epsilon()
(dal C++11)
Restituisce l'epsilon macchina, cioè la differenza tra 1.0 e il successivo valore rappresentabile dalla virgola mobile T tipo. E ha senso solo se std::numeric_limits<T>::is_integer==false.
Original:
Returns the machine epsilon, that is, the difference between 1.0 and the next value representable by the floating-point type T. It is only meaningful if std::numeric_limits<T>::is_integer==false.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Indice

[modifica]Valore di ritorno

Tstd::numeric_limits<T>::epsilon()
/* non-specialized */ T();
boolfalse
char0
signedchar0
unsignedchar0
wchar_t0
char16_t0
char32_t0
short0
unsignedshort0
int0
unsignedint0
long0
unsignedlong0
longlong0
unsignedlonglong0
floatFLT_EPSILON
doubleDBL_EPSILON
longdoubleLDBL_EPSILON

[modifica]Eccezioni

noexcept specification:  
noexcept
  (dal C++11)

[modifica]Esempio

Viene illustrato l'utilizzo semplicistica di epsilon macchina di confrontare i valori in virgola mobile .
Original:
Demonstrates the simplistic use of machine epsilon to compare floating-point values.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

#include <cmath>#include <limits>#include <iomanip>#include <iostream>#include <type_traits>   template<class T>typenamestd::enable_if<!std::numeric_limits<T>::is_integer, bool>::type almost_equal(T x, T y, int ulp){// the machine epsilon has to be scaled to the magnitude of the larger value// and multiplied by the desired precision in ULPs (units in the last place)return std::abs(x-y)<=std::numeric_limits<T>::epsilon()*std::max(std::abs(x), std::abs(y))* ulp;}int main(){double d1 =0.2;double d2 =1/std::sqrt(5)/std::sqrt(5);   if(d1 == d2)std::cout<<"d1 == d2\n";elsestd::cout<<"d1 != d2\n";   if(almost_equal(d1, d2, 2))std::cout<<"d1 almost equals d2\n";elsestd::cout<<"d1 does not almost equal d2\n";}

Output:

d1 != d2 d1 almost equals d2

[modifica]Vedi anche

(C++11)
(C++11)
prossimo valore rappresentabile in virgola mobile verso il valore dato
Original:
next representable floating point value towards the given value
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(funzione)[modifica]
close