# Poco

# class NumberFormatter

Library: Foundation
Package: Core
Header: Poco/NumberFormatter.h

## Description

The NumberFormatter class provides static methods for formatting numeric values into strings.

There are two kind of static member functions:

- format* functions return a std::string containing the formatted value.
- append* functions append the formatted value to an existing string.

## Member Summary

Member Functions: append, append0, appendHex, format, format0, formatHex

## Enumerations

### BoolFormat

FMT_TRUE_FALSE

FMT_YES_NO

FMT_ON_OFF

### Options

Options to control the format of the generated string.

DEFAULT = 0

formatHex defaults: No 0x prefix, uppercase hexadecimal values

HEX_PREFIX = (1 << 0)

formatHex: Prepend prefix 0x

HEX_LOWERCASE = (1 << 1)

formatHex: Use lowercase letters for hexadecimal values

## Member Functions

### append

static void append(
std::string & str,
int value
);

Formats an integer value in decimal notation.

### append

static void append(
std::string & str,
int value,
int width
);

Formats an integer value in decimal notation, right justified in a field having at least the specified width.

### append

static void append(
std::string & str,
unsigned value
);

Formats an unsigned int value in decimal notation.

### append

static void append(
std::string & str,
unsigned value,
int width
);

Formats an unsigned long int in decimal notation, right justified in a field having at least the specified width.

### append

static void append(
std::string & str,
long value
);

Formats a long value in decimal notation.

### append

static void append(
std::string & str,
long value,
int width
);

Formats a long value in decimal notation, right justified in a field having at least the specified width.

### append

static void append(
std::string & str,
unsigned long value
);

Formats an unsigned long value in decimal notation.

### append

static void append(
std::string & str,
unsigned long value,
int width
);

Formats an unsigned long value in decimal notation, right justified in a field having at least the specified width.

### append

static void append(
std::string & str,
long long value
);

Formats a 64-bit integer value in decimal notation.

### append

static void append(
std::string & str,
long long value,
int width
);

Formats a 64-bit integer value in decimal notation, right justified in a field having at least the specified width.

### append

static void append(
std::string & str,
unsigned long long value
);

Formats an unsigned 64-bit integer value in decimal notation.

### append

static void append(
std::string & str,
unsigned long long value,
int width
);

Formats an unsigned 64-bit integer value in decimal notation, right justified in a field having at least the specified width.

### append

static void append(
std::string & str,
float value
);

Formats a float value in decimal floating-point notation, according to std::printf's %g format with a precision of 8 fractional digits.

### append

static void append(
std::string & str,
float value,
int precision
);

Formats a double value in decimal floating-point notation, according to std::printf's %f format with the given precision.

### append

static void append(
std::string & str,
float value,
int width,
int precision
);

Formats a double value in decimal floating-point notation, right justified in a field of the specified width, with the number of fractional digits given in precision.

### append

static void append(
std::string & str,
double value
);

Formats a double value in decimal floating-point notation, according to std::printf's %g format with a precision of 16 fractional digits.

### append

static void append(
std::string & str,
double value,
int precision
);

Formats a double value in decimal floating-point notation, according to std::printf's %f format with the given precision.

### append

static void append(
std::string & str,
double value,
int width,
int precision
);

Formats a double value in decimal floating-point notation, right justified in a field of the specified width, with the number of fractional digits given in precision.

### append

static void append(
std::string & str,
const void * ptr
);

Formats a pointer in an eight (32-bit architectures) or sixteen (64-bit architectures) characters wide field in hexadecimal notation.

### append0

static void append0(
std::string & str,
int value,
int width
);

Formats an integer value in decimal notation, right justified and zero-padded in a field having at least the specified width.

### append0

static void append0(
std::string & str,
unsigned int value,
int width
);

Formats an unsigned int value in decimal notation, right justified and zero-padded in a field having at least the specified width.

### append0

static void append0(
std::string & str,
long value,
int width
);

Formats a long value in decimal notation, right justified and zero-padded in a field having at least the specified width.

### append0

static void append0(
std::string & str,
unsigned long value,
int width
);

Formats an unsigned long value in decimal notation, right justified and zero-padded in a field having at least the specified width.

### append0

static void append0(
std::string & str,
long long value,
int width
);

Formats a 64-bit integer value in decimal notation, right justified and zero-padded in a field having at least the specified width.

### append0

static void append0(
std::string & str,
unsigned long long value,
int width
);

Formats an unsigned 64-bit integer value in decimal notation, right justified and zero-padded in a field having at least the specified width.

### appendHex

static void appendHex(
std::string & str,
int value,
bool lowercase = false
);

Formats an int value in hexadecimal notation. The value is treated as unsigned.

### appendHex

static void appendHex(
std::string & str,
int value,
int width,
bool lowercase = false
);

Formats a int value in hexadecimal notation, right justified and zero-padded in a field having at least the specified width. The value is treated as unsigned.

### appendHex

static void appendHex(
std::string & str,
unsigned value,
bool lowercase = false
);

Formats an unsigned int value in hexadecimal notation.

### appendHex

static void appendHex(
std::string & str,
unsigned value,
int width,
bool lowercase = false
);

Formats a int value in hexadecimal notation, right justified and zero-padded in a field having at least the specified width.

### appendHex

static void appendHex(
std::string & str,
long value,
bool lowercase = false
);

Formats an unsigned long value in hexadecimal notation. The value is treated as unsigned.

### appendHex

static void appendHex(
std::string & str,
long value,
int width,
bool lowercase = false
);

Formats an unsigned long value in hexadecimal notation, right justified and zero-padded in a field having at least the specified width. The value is treated as unsigned.

### appendHex

static void appendHex(
std::string & str,
unsigned long value,
bool lowercase = false
);

Formats an unsigned long value in hexadecimal notation.

### appendHex

static void appendHex(
std::string & str,
unsigned long value,
int width,
bool lowercase = false
);

Formats an unsigned long value in hexadecimal notation, right justified and zero-padded in a field having at least the specified width.

### appendHex

static void appendHex(
std::string & str,
long long value,
bool lowercase = false
);

Formats a 64-bit integer value in hexadecimal notation. The value is treated as unsigned.

### appendHex

static void appendHex(
std::string & str,
long long value,
int width,
bool lowercase = false
);

Formats a 64-bit integer value in hexadecimal notation, right justified and zero-padded in a field having at least the specified width. The value is treated as unsigned.

### appendHex

static void appendHex(
std::string & str,
unsigned long long value,
bool lowercase = false
);

Formats a 64-bit integer value in hexadecimal notation.

### appendHex

static void appendHex(
std::string & str,
unsigned long long value,
int width,
bool lowercase = false
);

Formats a 64-bit integer value in hexadecimal notation, right justified and zero-padded in a field having at least the specified width.

### format

static std::string format(
int value
);

Formats an integer value in decimal notation.

### format

static std::string format(
int value,
int width
);

Formats an integer value in decimal notation, right justified in a field having at least the specified width.

### format

static std::string format(
unsigned value
);

Formats an unsigned int value in decimal notation.

### format

static std::string format(
unsigned value,
int width
);

Formats an unsigned long int in decimal notation, right justified in a field having at least the specified width.

### format

static std::string format(
long value
);

Formats a long value in decimal notation.

### format

static std::string format(
long value,
int width
);

Formats a long value in decimal notation, right justified in a field having at least the specified width.

### format

static std::string format(
unsigned long value
);

Formats an unsigned long value in decimal notation.

### format

static std::string format(
unsigned long value,
int width
);

Formats an unsigned long value in decimal notation, right justified in a field having at least the specified width.

### format

static std::string format(
long long value
);

Formats a 64-bit integer value in decimal notation.

### format

static std::string format(
long long value,
int width
);

Formats a 64-bit integer value in decimal notation, right justified in a field having at least the specified width.

### format

static std::string format(
unsigned long long value
);

Formats an unsigned 64-bit integer value in decimal notation.

### format

static std::string format(
unsigned long long value,
int width
);

Formats an unsigned 64-bit integer value in decimal notation, right justified in a field having at least the specified width.

### format

static std::string format(
float value
);

Formats a float value in decimal floating-point notation, according to std::printf's %g format with a precision of 8 fractional digits.

### format

static std::string format(
float value,
int precision
);

Formats a double value in decimal floating-point notation, according to std::printf's %f format with the given precision.

### format

static std::string format(
float value,
int width,
int precision
);

Formats a double value in decimal floating-point notation, right justified in a field of the specified width, with the number of fractional digits given in precision.

### format

static std::string format(
double value
);

Formats a double value in decimal floating-point notation, according to std::printf's %g format with a precision of 16 fractional digits.

### format

static std::string format(
double value,
int precision
);

Formats a double value in decimal floating-point notation, according to std::printf's %f format with the given precision.

### format

static std::string format(
double value,
int width,
int precision
);

Formats a double value in decimal floating-point notation, right justified in a field of the specified width, with the number of fractional digits given in precision.

### format

static std::string format(
const void * ptr
);

Formats a pointer in an eight (32-bit architectures) or sixteen (64-bit architectures) characters wide field in hexadecimal notation.

### format

static std::string format(
bool value,
BoolFormat format = FMT_TRUE_FALSE
);

Formats a bool value in decimal/text notation, according to format parameter.

### format0

static std::string format0(
int value,
int width
);

Formats an integer value in decimal notation, right justified and zero-padded in a field having at least the specified width.

### format0

static std::string format0(
unsigned int value,
int width
);

Formats an unsigned int value in decimal notation, right justified and zero-padded in a field having at least the specified width.

### format0

static std::string format0(
long value,
int width
);

Formats a long value in decimal notation, right justified and zero-padded in a field having at least the specified width.

### format0

static std::string format0(
unsigned long value,
int width
);

Formats an unsigned long value in decimal notation, right justified and zero-padded in a field having at least the specified width.

### format0

static std::string format0(
long long value,
int width
);

Formats a 64-bit integer value in decimal notation, right justified and zero-padded in a field having at least the specified width.

### format0

static std::string format0(
unsigned long long value,
int width
);

Formats an unsigned 64-bit integer value in decimal notation, right justified and zero-padded in a field having at least the specified width.

### formatHex

static std::string formatHex(
int value,
Options options = Options::DEFAULT
);

Formats an int value in hexadecimal notation. Options (see NumberFormatter::Options) define the format of the generated string. The value is treated as unsigned.

### formatHex

static std::string formatHex(
int value,
int width,
Options options = Options::DEFAULT
);

Formats an int value in hexadecimal notation, right justified and zero-padded in a field having at least the specified width. Options (see NumberFormatter::Options) define the format of the generated string. The value is treated as unsigned.

### formatHex

static std::string formatHex(
unsigned value,
Options options = Options::DEFAULT
);

Formats an unsigned int value in hexadecimal notation. Options (see NumberFormatter::Options) define the format of the generated string.

### formatHex

static std::string formatHex(
unsigned value,
int width,
Options options = Options::DEFAULT
);

Formats an unsigned value in hexadecimal notation, right justified and zero-padded in a field having at least the specified width. Options (see NumberFormatter::Options) define the format of the generated string.

### formatHex

static std::string formatHex(
long value,
Options options = Options::DEFAULT
);

Formats a long value in hexadecimal notation. Options (see NumberFormatter::Options) define the format of the generated string.

### formatHex

static std::string formatHex(
long value,
int width,
Options options = Options::DEFAULT
);

Formats a long value in hexadecimal notation, right justified and zero-padded in a field having at least the specified width. Options (see NumberFormatter::Options) define the format of the generated string.

### formatHex

static std::string formatHex(
unsigned long value,
Options options = Options::DEFAULT
);

Formats an unsigned long value in hexadecimal notation. Options (see NumberFormatter::Options) define the format of the generated string.

### formatHex

static std::string formatHex(
unsigned long value,
int width,
Options options = Options::DEFAULT
);

Formats an unsigned long value in hexadecimal notation, right justified and zero-padded in a field having at least the specified width. Options (see NumberFormatter::Options) define the format of the generated string.

### formatHex

static std::string formatHex(
long long value,
Options options = Options::DEFAULT
);

Formats a 64-bit integer value in hexadecimal notation. Options (see NumberFormatter::Options) define the format of the generated string.

### formatHex

static std::string formatHex(
long long value,
int width,
Options options = Options::DEFAULT
);

Formats a 64-bit integer value in hexadecimal notation, right justified and zero-padded in a field having at least the specified width. The value is treated as unsigned. Options (see NumberFormatter::Options) define the format of the generated string.

### formatHex

static std::string formatHex(
unsigned long long value,
Options options = Options::DEFAULT
);

Formats an unsigned 64-bit value in hexadecimal notation. Options (see NumberFormatter::Options) define the format of the generated string.

### formatHex

static std::string formatHex(
unsigned long long value,
int width,
Options options = Options::DEFAULT
);

Formats an unsigned 64-bit value in hexadecimal notation, right justified and zero-padded in a field having at least the specified width. The value is treated as unsigned. Options (see NumberFormatter::Options) define the format of the generated string.

### formatHex

static std::string formatHex(
int value,
bool prefix
);

Formats an int value in hexadecimal notation. If prefix is true, "0x" prefix is prepended to the resulting string. The value is treated as unsigned.

### formatHex

static std::string formatHex(
int value,
int width,
bool prefix
);

Formats an int value in hexadecimal notation, right justified and zero-padded in a field having at least the specified width. If prefix is true, "0x" prefix is prepended to the resulting string. The value is treated as unsigned.

### formatHex

static std::string formatHex(
unsigned value,
bool prefix
);

Formats an unsigned int value in hexadecimal notation. If prefix is true, "0x" prefix is prepended to the resulting string.

### formatHex

static std::string formatHex(
unsigned value,
int width,
bool prefix
);

Formats an unsigned value in hexadecimal notation, right justified and zero-padded in a field having at least the specified width. If prefix is true, "0x" prefix is prepended to the resulting string.

### formatHex

static std::string formatHex(
long value,
bool prefix
);

Formats a long value in hexadecimal notation. If prefix is true, "0x" prefix is prepended to the resulting string. The value is treated as unsigned.

### formatHex

static std::string formatHex(
long value,
int width,
bool prefix
);

Formats a long value in hexadecimal notation, right justified and zero-padded in a field having at least the specified width. If prefix is true, "0x" prefix is prepended to the resulting string. The value is treated as unsigned.

### formatHex

static std::string formatHex(
unsigned long value,
bool prefix
);

Formats an unsigned long value in hexadecimal notation. If prefix is true, "0x" prefix is prepended to the resulting string.

### formatHex

static std::string formatHex(
unsigned long value,
int width,
bool prefix
);

Formats an unsigned long value in hexadecimal notation, right justified and zero-padded in a field having at least the specified width. If prefix is true, "0x" prefix is prepended to the resulting string.

### formatHex

static std::string formatHex(
long long value,
bool prefix
);

Formats a 64-bit integer value in hexadecimal notation. If prefix is true, "0x" prefix is prepended to the resulting string. The value is treated as unsigned.

### formatHex

static std::string formatHex(
long long value,
int width,
bool prefix
);

Formats a 64-bit integer value in hexadecimal notation, right justified and zero-padded in a field having at least the specified width. The value is treated as unsigned. If prefix is true, "0x" prefix is prepended to the resulting string.

### formatHex

static std::string formatHex(
unsigned long long value,
bool prefix
);

Formats an unsigned 64-bit integer value in hexadecimal notation. If prefix is true, "0x" prefix is prepended to the resulting string.

### formatHex

static std::string formatHex(
unsigned long long value,
int width,
bool prefix
);

Formats an unsigned 64-bit integer value in hexadecimal notation, right justified and zero-padded in a field having at least the specified width. If prefix is true, "0x" prefix is prepended to the resulting string.

## Variables

### NF_MAX_FLT_STRING_LEN

static const unsigned NF_MAX_FLT_STRING_LEN = 780;

### NF_MAX_INT_STRING_LEN

static const unsigned NF_MAX_INT_STRING_LEN = 32;