# Poco

# class NumberParser

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

## Description

The NumberParser class provides static methods for parsing numbers out of strings.

Note that leading or trailing whitespace is not allowed in the string. Poco::trim() or Poco::trimInPlace() can be used to remove leading or trailing whitespace.

## Member Summary

Member Functions: parse, parse64, parseBool, parseFloat, parseHex, parseHex64, parseOct, parseOct64, parseUnsigned, parseUnsigned64, tryParse, tryParse64, tryParseBool, tryParseFloat, tryParseHex, tryParseHex64, tryParseOct, tryParseOct64, tryParseUnsigned, tryParseUnsigned64

## Member Functions

### parse

static int parse(
const std::string & s,
char thousandSeparator = ','
);

Parses an integer value in decimal notation from the given string. Throws a SyntaxException if the string does not hold a number in decimal notation.

### parse64

static Int64 parse64(
const std::string & s,
char thousandSeparator = ','
);

Parses a 64-bit integer value in decimal notation from the given string. Throws a SyntaxException if the string does not hold a number in decimal notation.

### parseBool

static bool parseBool(
const std::string & s
);

Parses a bool value in decimal or string notation from the given string. Valid forms are: "0", "1", "true", "on", false", "yes", "no", "off". String forms are NOT case sensitive. Throws a SyntaxException if the string does not hold a valid bool number

### parseFloat

static double parseFloat(
const std::string & s,
char decimalSeparator = '.',
char thousandSeparator = ','
);

Parses a double value in decimal floating point notation from the given string. Throws a SyntaxException if the string does not hold a floating-point number in decimal notation.

### parseHex

static unsigned parseHex(
const std::string & s
);

Parses an integer value in hexadecimal notation from the given string. Throws a SyntaxException if the string does not hold a number in hexadecimal notation.

### parseHex64

static UInt64 parseHex64(
const std::string & s
);

Parses a 64 bit-integer value in hexadecimal notation from the given string. Throws a SyntaxException if the string does not hold a number in hexadecimal notation.

### parseOct

static unsigned parseOct(
const std::string & s
);

Parses an integer value in octal notation from the given string. Throws a SyntaxException if the string does not hold a number in hexadecimal notation.

### parseOct64

static UInt64 parseOct64(
const std::string & s
);

Parses a 64 bit-integer value in octal notation from the given string. Throws a SyntaxException if the string does not hold a number in hexadecimal notation.

### parseUnsigned

static unsigned parseUnsigned(
const std::string & s,
char thousandSeparator = ','
);

Parses an unsigned integer value in decimal notation from the given string. Throws a SyntaxException if the string does not hold a number in decimal notation.

### parseUnsigned64

static UInt64 parseUnsigned64(
const std::string & s,
char thousandSeparator = ','
);

Parses an unsigned 64-bit integer value in decimal notation from the given string. Throws a SyntaxException if the string does not hold a number in decimal notation.

### tryParse

static bool tryParse(
const std::string & s,
int & value,
char thousandSeparator = ','
);

Parses an integer value in decimal notation from the given string. Returns true if a valid integer has been found, false otherwise. If parsing was not successful, value is undefined.

### tryParse64

static bool tryParse64(
const std::string & s,
Int64 & value,
char thousandSeparator = ','
);

Parses a 64-bit integer value in decimal notation from the given string. Returns true if a valid integer has been found, false otherwise. If parsing was not successful, value is undefined.

### tryParseBool

static bool tryParseBool(
const std::string & s,
bool & value
);

Parses a bool value in decimal or string notation from the given string. Valid forms are: "0", "1", "true", "on", false", "yes", "no", "off". String forms are NOT case sensitive. Returns true if a valid bool number has been found, false otherwise. If parsing was not successful, value is undefined.

### tryParseFloat

static bool tryParseFloat(
const std::string & s,
double & value,
char decimalSeparator = '.',
char thousandSeparator = ','
);

Parses a double value in decimal floating point notation from the given string. Returns true if a valid floating point number has been found, false otherwise. If parsing was not successful, value is undefined.

### tryParseHex

static bool tryParseHex(
const std::string & s,
unsigned & value
);

Parses an unsigned integer value in hexadecimal notation from the given string. Returns true if a valid integer has been found, false otherwise. If parsing was not successful, value is undefined.

### tryParseHex64

static bool tryParseHex64(
const std::string & s,
UInt64 & value
);

Parses an unsigned 64-bit integer value in hexadecimal notation from the given string. Returns true if a valid integer has been found, false otherwise. If parsing was not successful, value is undefined.

### tryParseOct

static bool tryParseOct(
const std::string & s,
unsigned & value
);

Parses an unsigned integer value in octal notation from the given string. Returns true if a valid integer has been found, false otherwise. If parsing was not successful, value is undefined.

### tryParseOct64

static bool tryParseOct64(
const std::string & s,
UInt64 & value
);

Parses an unsigned 64-bit integer value in octal notation from the given string. Returns true if a valid integer has been found, false otherwise. If parsing was not successful, value is undefined.

### tryParseUnsigned

static bool tryParseUnsigned(
const std::string & s,
unsigned & value,
char thousandSeparator = ','
);

Parses an unsigned integer value in decimal notation from the given string. Returns true if a valid integer has been found, false otherwise. If parsing was not successful, value is undefined.

### tryParseUnsigned64

static bool tryParseUnsigned64(
const std::string & s,
UInt64 & value,
char thousandSeparator = ','
);

Parses an unsigned 64-bit integer value in decimal notation from the given string. Returns true if a valid integer has been found, false otherwise. If parsing was not successful, value is undefined.

## Variables

### NUM_BASE_DEC

static const unsigned short NUM_BASE_DEC = 10;

### NUM_BASE_HEX

static const unsigned short NUM_BASE_HEX = 0x10;

### NUM_BASE_OCT

static const unsigned short NUM_BASE_OCT = 010;