# 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

## 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,
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.

### appendHex

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

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

### appendHex

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

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
);

Formats an unsigned int value in hexadecimal notation.

### appendHex

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

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
);

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
);

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
);

Formats an unsigned long value in hexadecimal notation.

### appendHex

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

Formats an unsigned long 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(
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.

### formatHex

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

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 = false
);

Formats a 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 = false
);

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 = false
);

Formats a 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.

### formatHex

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

Formats an unsigned 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 = false
);

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. The value is treated as unsigned.

### formatHex

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

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 = false
);

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.

## 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;