GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::numeric_limits::round_style(3) C++ Standard Libary std::numeric_limits::round_style(3)

std::numeric_limits::round_style - std::numeric_limits::round_style


static const std::float_round_style round_style; (until C++11)
static constexpr std::float_round_style round_style; (since C++11)


The value of std::numeric_limits<T>::round_style identifies the rounding style used
by the floating-point type T whenever a value that is not one of the exactly
repesentable values of T is stored in an object of that type.


T value of std::numeric_limits<T>::round_style
/* non-specialized */ std::round_toward_zero
bool std::round_toward_zero
char std::round_toward_zero
signed char std::round_toward_zero
unsigned char std::round_toward_zero
wchar_t std::round_toward_zero
char8_t (C++20) std::round_toward_zero
char16_t (C++11) std::round_toward_zero
char32_t (C++11) std::round_toward_zero
short std::round_toward_zero
unsigned short std::round_toward_zero
int std::round_toward_zero
unsigned int std::round_toward_zero
long std::round_toward_zero
unsigned long std::round_toward_zero
long long (C++11) std::round_toward_zero
unsigned long long (C++11) std::round_toward_zero
float usually std::round_to_nearest
double usually std::round_to_nearest
long double usually std::round_to_nearest


These values are constants, and do not reflect the changes to the rounding made by
std::fesetround. The changed values may be obtained from FLT_ROUNDS or
std::fegetround.


The decimal value 0.1 cannot be represented by a binary floating-point type. When
stored in an IEEE-754 double, it falls between 0x1.9999999999999*2-4
and 0x1.999999999999a*2-4
. Rounding to nearest representable value results in 0x1.999999999999a*2-4
.


Similarly, the decimal value 0.3, which is between 0x1.3333333333333*2-2
and 0x1.3333333333334*2-2
is rounded to nearest and is stored as 0x1.3333333333333*2-2
.

// Run this code


#include <iostream>
#include <limits>
int main()
{
std::cout << std::hexfloat << "The decimal 0.1 is stored in a double as "
<< 0.1 << '\n'
<< "The decimal 0.3 is stored in a double as "
<< 0.3 << '\n'
<< "The rounding style is " << std::numeric_limits<double>::round_style << '\n';
}


The decimal 0.1 is stored in a double as 0x1.999999999999ap-4
The decimal 0.3 is stored in a double as 0x1.3333333333333p-2
The rounding style is 1


float_round_style indicates floating-point rounding modes
(enum)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.