Overview | Namespace | Class | Index | Help

## Global Functions in Global Namespace C++
in Sourcefile math.h

rtl_math_doubleToString
  extern "C"
  void rtl_math_doubleToString(

    rtl_String * * | pResult,
    sal_Int32 * | pResultCapacity,
    sal_Int32 | nResultOffset,
    double | fValue,
    rtl_math_StringFormat | eFormat,
    sal_Int32 | nDecPlaces,
    sal_Char | cDecSeparator,
    const sal_Int32 * | pGroups,
    sal_Char | cGroupSeparator,
    sal_Bool | bEraseTrailingDecZeros );

  virtual | abstract | const | volatile | template | static | inline | C-linkage
  NO | NO | NO | NO | NO | NO | NO | YES

  Summary
    Conversions analogous to sprintf() using internal rounding.
  Description
    +/-HUGE_VAL are converted to "1.#INF" and "-1.#INF", NAN values are converted to "1.#NAN" and "-1.#NAN", of course using cDecSeparator instead of '.'.
  Parameters

    pResult |
            Returns the resulting byte string.  Must itself not be null, and must point
            to either null or a valid string.
    pResultCapacity |
            If null, pResult is considered to point to immutable strings, and a new
            string will be allocated in pResult.
            If non-null, it points to the current capacity of pResult, which is
            considered to point to a string buffer (pResult must not itself be null in
            this case, and must point to a string that has room for the given capacity).
            The string representation of the given double value is inserted into pResult
            at position nResultOffset.  If pResult's current capacity is too small, a
            new string buffer will be allocated in pResult as necessary, and
            pResultCapacity will contain the new capacity on return.
    nResultOffset |
            If pResult is used as a string buffer (i.e., pResultCapacity is non-null),
            nResultOffset specifies the insertion offset within the buffer.  Ignored
            otherwise.
    fValue |
            The value to convert.
    eFormat |
            The format to use, one of rtl_math_StringFormat.
    nDecPlaces |
            The number of decimals to be generated.  Effectively fValue is rounded at
            this position, specifying nDecPlaces <= 0 accordingly rounds the value
            before the decimal point and fills with zeros.
            If eFormat == rtl_math_StringFormat_Automatic and nDecPlaces ==
            rtl_math_DecimalPlaces_Max, the highest number of significant decimals
            possible is generated.
            If eFormat == rtl_math_StringFormat_G, nDecPlaces specifies the number of
            significant digits instead.  If nDecPlaces ==
            rtl_math_DecimalPlaces_DefaultSignificance, the default number (currently 6
            as implemented by most libraries) of significant digits is generated.
            According to the ANSI C90 standard the E style will be used only if the
            exponent resulting from the conversion is less than -4 or greater than or
            equal to the precision.  However, as opposed to the ANSI standard, trailing
            zeros are not necessarily removed from the fractional portion of the result
            unless bEraseTrailingDecZeros == true was specified.
    cDecSeparator |
            The decimal separator.
    pGroups |
            Either null (no grouping is used), or a null-terminated list of group
            lengths.  Each group length must be strictly positive.  If the number of
            digits in a conversion exceeds the specified range, the last (highest) group
            length is repeated as needed.  Values are applied from right to left, for a
            grouping of 1,00,00,000 you'd have to specify pGroups={3,2,0}.
    cGroupSeparator |
            The group separator.  Ignored if pGroups is null.
    bEraseTrailingDecZeros |
            Trailing zeros in decimal places are erased.

rtl_math_doubleToUString
  extern "C"
  void rtl_math_doubleToUString(

    rtl_uString * * | pResult,
    sal_Int32 * | pResultCapacity,
    sal_Int32 | nResultOffset,
    double | fValue,
    rtl_math_StringFormat | eFormat,
    sal_Int32 | nDecPlaces,
    sal_Unicode | cDecSeparator,
    const sal_Int32 * | pGroups,
    sal_Unicode | cGroupSeparator,
    sal_Bool | bEraseTrailingDecZeros );

  virtual | abstract | const | volatile | template | static | inline | C-linkage
  NO | NO | NO | NO | NO | NO | NO | YES

  Summary
    Conversions analogous to sprintf() using internal rounding.
  Description
    +/-HUGE_VAL are converted to "1.#INF" and "-1.#INF", NAN values are converted to "1.#NAN" and "-1.#NAN", of course using cDecSeparator instead of '.'.
  Parameters

    pResult |
            Returns the resulting Unicode string.  Must itself not be null, and must
            point to either null or a valid string.
    pResultCapacity |
            If null, pResult is considered to point to immutable strings, and a new
            string will be allocated in pResult.
            If non-null, it points to the current capacity of pResult, which is
            considered to point to a string buffer (pResult must not itself be null in
            this case, and must point to a string that has room for the given capacity).
            The string representation of the given double value is inserted into pResult
            at position nResultOffset.  If pResult's current capacity is too small, a
            new string buffer will be allocated in pResult as necessary, and
            pResultCapacity will contain the new capacity on return.
    nResultOffset |
            If pResult is used as a string buffer (i.e., pResultCapacity is non-null),
            nResultOffset specifies the insertion offset within the buffer.  Ignored
            otherwise.
    fValue |
            The value to convert.
    eFormat |
            The format to use, one of rtl_math_StringFormat.
    nDecPlaces |
            The number of decimals to be generated.  Effectively fValue is rounded at
            this position, specifying nDecPlaces <= 0 accordingly rounds the value
            before the decimal point and fills with zeros.
            If eFormat == rtl_math_StringFormat_Automatic and nDecPlaces ==
            rtl_math_DecimalPlaces_Max, the highest number of significant decimals
            possible is generated.
            If eFormat == rtl_math_StringFormat_G, nDecPlaces specifies the number of
            significant digits instead.  If nDecPlaces ==
            rtl_math_DecimalPlaces_DefaultSignificance, the default number (currently 6
            as implemented by most libraries) of significant digits is generated.
            According to the ANSI C90 standard the E style will be used only if the
            exponent resulting from the conversion is less than -4 or greater than or
            equal to the precision.  However, as opposed to the ANSI standard, trailing
            zeros are not necessarily removed from the fractional portion of the result
            unless bEraseTrailingDecZeros == true was specified.
    cDecSeparator |
            The decimal separator.
    pGroups |
            Either null (no grouping is used), or a null-terminated list of group
            lengths.  Each group length must be strictly positive.  If the number of
            digits in a conversion exceeds the specified range, the last (highest) group
            length is repeated as needed.  Values are applied from right to left, for a
            grouping of 1,00,00,000 you'd have to specify pGroups={3,2,0}.
    cGroupSeparator |
            The group separator.  Ignored if pGroups is null.
    bEraseTrailingDecZeros |
            Trailing zeros in decimal places are erased.

rtl_math_pow10Exp
  extern "C"
  double rtl_math_pow10Exp(

    double | fValue,
    int | nExp );

  virtual | abstract | const | volatile | template | static | inline | C-linkage
  NO | NO | NO | NO | NO | NO | NO | YES

  Summary
    Scales fVal to a power of 10 without calling pow() or div() for nExp values between -16 and +16, providing a faster method.
  Parameters

    fValue |
        The value to be raised.
    nExp |
        The exponent.

  Return
    fVal * pow(10.0, nExp)

rtl_math_round
  extern "C"
  double rtl_math_round(

    double | fValue,
    int | nDecPlaces,
    rtl_math_RoundingMode | eMode );

  virtual | abstract | const | volatile | template | static | inline | C-linkage
  NO | NO | NO | NO | NO | NO | NO | YES

  Summary
    Rounds a double value.
  Parameters

    fValue |
            Specifies the value to be rounded.
    nDecPlaces |
            Specifies the decimal place where rounding occurs.  Must be in the range
            -20 to +20, inclusive.  Negative if rounding occurs before the decimal
            point.
    eMode |
            Specifies the rounding mode.

rtl_math_stringToDouble
  extern "C"
  double rtl_math_stringToDouble(

    const sal_Char * | pBegin,
    const sal_Char * | pEnd,
    sal_Char | cDecSeparator,
    sal_Char | cGroupSeparator,
    rtl_math_ConversionStatus * | pStatus,
    const sal_Char * * | pParsedEnd );

  virtual | abstract | const | volatile | template | static | inline | C-linkage
  NO | NO | NO | NO | NO | NO | NO | YES

  Summary
    Conversion analogous to strtod(), convert a string representing a decimal number into a double value.
  Description
    Leading tabs (0x09) and spaces (0x20) are eaten. Overflow returns +/-HUGE_VAL, underflow 0. In both cases pStatus is set to rtl_math_ConversionStatus_OutOfRange, otherwise to rtl_math_ConversionStatus_Ok. "+/-1.#INF" is recognized as +/-HUGE_VAL, pStatus is set to rtl_math_ConversionStatus_OutOfRange. "+/-1.#NAN" is recognized and the value is set to +/-NAN, pStatus is set to rtl_math_ConversionStatus_Ok.
  Parameters

    pBegin |
        Points to the start of the byte string to convert.  Must not be null.
    pEnd |
        Points one past the end of the byte string to convert.  The condition
        pEnd >= pBegin must hold.
    cDecSeparator |
        The decimal separator.
    cGroupSeparator |
        The group (aka thousands) separator.
    pStatus |
        If non-null, returns the status of the conversion.
    pParsedEnd |
        If non-null, returns one past the position of the last character parsed
        away.  Thus if [pBegin..pEnd) only contains the numerical string to be
        parsed, *pParsedEnd == pEnd on return.

rtl_math_uStringToDouble
  extern "C"
  double rtl_math_uStringToDouble(

    const sal_Unicode * | pBegin,
    const sal_Unicode * | pEnd,
    sal_Unicode | cDecSeparator,
    sal_Unicode | cGroupSeparator,
    rtl_math_ConversionStatus * | pStatus,
    const sal_Unicode * * | pParsedEnd );

  virtual | abstract | const | volatile | template | static | inline | C-linkage
  NO | NO | NO | NO | NO | NO | NO | YES

  Summary
    Conversion analogous to strtod(), convert a string representing a decimal number into a double value.
  Description
    Leading tabs (U+0009) and spaces (U+0020) are eaten. Overflow returns +/-HUGE_VAL, underflow 0. In both cases pStatus is set to rtl_math_ConversionStatus_OutOfRange, otherwise to rtl_math_ConversionStatus_Ok. "+/-1.#INF" is recognized as +/-HUGE_VAL, pStatus is set to rtl_math_ConversionStatus_OutOfRange. "+/-1.#NAN" is recognized and the value is set to +/-NAN, pStatus is set to rtl_math_ConversionStatus_Ok.
  Parameters

    pBegin |
        Points to the start of the Unicode string to convert.  Must not be null.
    pEnd |
        Points one past the end of the Unicode string to convert.  The condition
        pEnd >= pBegin must hold.
    cDecSeparator |
        The decimal separator.
    cGroupSeparator |
        The group (aka thousands) separator.
    pStatus |
        If non-null, returns the status of the conversion.
    pParsedEnd |
        If non-null, returns one past the position of the last character parsed
        away.  Thus if [pBegin..pEnd) only contains the numerical string to be
        parsed, *pParsedEnd == pEnd on return.

Top of Page

Copyright © 2003 Sun Microsystems, Inc.