BloombergLP::bdldfp::DecimalConvertUtil_IntelDfp::decimalToFloat

Return a float closest to the value of the specified decimal.

Synopsis

Declared in <bdldfp_decimalconvertutil_inteldfp.h>

static
float
decimalToFloat(Decimal32 decimal);

Description

Conversion follows the rules defined by IEEE-754:

* If the decimal object is a NaN, return a NaN. * Otherwise if decimal is positive or negative infinity, return infinity of the same sign. * Otherwise if decimal is positive or negative zero, return zero of the same sign. * Otherwise if decimal object has an absolute value that is larger than std::numeric_limits<long double>::max(), raise the "overflow" floating-point exception and return infinity of the same sign as decimal. * Otherwise if decimal has an absolute value that is smaller than std::numeric_limits<float>::min(), raise the "underflow" floating-point exception and return zero of the same sign as decimal. * Otherwise if decimal has a value that has more significant base-10 digits than std::numeric_limits<float>::digits10, raise the "inexact" floating-point exception, round that value according to the binary rounding direction setting of the floating-point environment, and return the result of that. * Otherwise if decimal has a significand that cannot be exactly represented using binary floating-point, raise the "inexact" floating-point exception, roundthat value according to the binary rounding direction setting of the environment, and return the result of that. * Otherwise use the exact value of the other object for the initialization if this object.

Return Value

closest float representation of decimal

Parameters

NameDescription
decimalvalue to convert