Version: 3.2.2
wxNumberFormatter Class Reference

#include <wx/numformatter.h>

Detailed Description

Formatting and parsing numbers using the current UI locale conventions, including support for using the correct decimal point character and thousands separators.

This class contains only static functions, so users must not create instances but directly call the member functions.

See also
wxUILocale
Since
2.9.2

Library:  wxBase

Public Types

enum  Style {
  Style_None = 0x00 ,
  Style_WithThousandsSep = 0x01 ,
  Style_NoTrailingZeroes = 0x02
}
 Bit masks used with ToString(). More...
 

Static Public Member Functions

static wxString ToString (double val, int precision, int flags=Style_WithThousandsSep)
 Returns string representation of a floating point number. More...
 
static wxString Format (const wxString &format, double val)
 Format the given number using one of the floating point formats and ensure that the result uses the correct decimal separator. More...
 
static wxChar GetDecimalSeparator ()
 Get the decimal separator for the current UI locale. More...
 
static bool GetThousandsSeparatorIfUsed (wxChar *sep)
 Get the thousands separator if grouping of the digits is used by the current UI locale. More...
 
static wxString ToString (long val, int flags=Style_WithThousandsSep)
 Returns string representation of an integer number. More...
 
static wxString ToString (long long val, int flags=Style_WithThousandsSep)
 Returns string representation of an integer number. More...
 
static wxString ToString (unsigned long long val, int flags=Style_WithThousandsSep)
 Returns string representation of an integer number. More...
 
static bool FromString (wxString s, long *val)
 Parse a string representation of a number possibly including thousands separators. More...
 
static bool FromString (wxString s, long long *val)
 Parse a string representation of a number possibly including thousands separators. More...
 
static bool FromString (wxString s, unsigned long long *val)
 Parse a string representation of a number possibly including thousands separators. More...
 
static bool FromString (wxString s, double *val)
 Parse a string representation of a number possibly including thousands separators. More...
 

Member Enumeration Documentation

◆ Style

Bit masks used with ToString().

Enumerator
Style_None 

This flag can be used to indicate absence of any other flags below.

Style_WithThousandsSep 

If this flag is given, thousands separators will be inserted in the number string representation as defined by the current UI locale.

Style_NoTrailingZeroes 

If this flag is given, trailing zeroes in a floating point number string representation will be omitted.

If the number is actually integer, the decimal separator will be omitted as well. To give an example, formatting the number 1.23 with precision 5 will normally yield "1.23000" but with this flag it would return "1.23". And formatting 123 with this flag will return just "123" for any precision.

This flag can't be used with ToString() overload taking the integer value.

Member Function Documentation

◆ Format()

static wxString wxNumberFormatter::Format ( const wxString format,
double  val 
)
static

Format the given number using one of the floating point formats and ensure that the result uses the correct decimal separator.

Prefer using ToString() if possible, i.e. if format is "%g" or "%.Nf" which are supported by it directly.

Since
3.1.6

◆ FromString() [1/4]

static bool wxNumberFormatter::FromString ( wxString  s,
double *  val 
)
static

Parse a string representation of a number possibly including thousands separators.

These functions parse number representation in the current UI locale. On success they return true and store the result at the location pointed to by val (which can't be NULL), otherwise false is returned.

Note that the overload taking unsigned long long value is only available since wxWidgets 3.1.5. Also, unlike wxString::ToULongLong() and the standard functions such as strtoul(), this overload does not accept, i.e. returns false, for the strings starting with the minus sign.

See also
wxString::ToLong(), wxString::ToDouble()

◆ FromString() [2/4]

static bool wxNumberFormatter::FromString ( wxString  s,
long *  val 
)
static

Parse a string representation of a number possibly including thousands separators.

These functions parse number representation in the current UI locale. On success they return true and store the result at the location pointed to by val (which can't be NULL), otherwise false is returned.

Note that the overload taking unsigned long long value is only available since wxWidgets 3.1.5. Also, unlike wxString::ToULongLong() and the standard functions such as strtoul(), this overload does not accept, i.e. returns false, for the strings starting with the minus sign.

See also
wxString::ToLong(), wxString::ToDouble()

◆ FromString() [3/4]

static bool wxNumberFormatter::FromString ( wxString  s,
long long *  val 
)
static

Parse a string representation of a number possibly including thousands separators.

These functions parse number representation in the current UI locale. On success they return true and store the result at the location pointed to by val (which can't be NULL), otherwise false is returned.

Note that the overload taking unsigned long long value is only available since wxWidgets 3.1.5. Also, unlike wxString::ToULongLong() and the standard functions such as strtoul(), this overload does not accept, i.e. returns false, for the strings starting with the minus sign.

See also
wxString::ToLong(), wxString::ToDouble()

◆ FromString() [4/4]

static bool wxNumberFormatter::FromString ( wxString  s,
unsigned long long *  val 
)
static

Parse a string representation of a number possibly including thousands separators.

These functions parse number representation in the current UI locale. On success they return true and store the result at the location pointed to by val (which can't be NULL), otherwise false is returned.

Note that the overload taking unsigned long long value is only available since wxWidgets 3.1.5. Also, unlike wxString::ToULongLong() and the standard functions such as strtoul(), this overload does not accept, i.e. returns false, for the strings starting with the minus sign.

See also
wxString::ToLong(), wxString::ToDouble()

◆ GetDecimalSeparator()

static wxChar wxNumberFormatter::GetDecimalSeparator ( )
static

Get the decimal separator for the current UI locale.

Decimal separators is always defined and we fall back to returning '.' in case of an error.

◆ GetThousandsSeparatorIfUsed()

static bool wxNumberFormatter::GetThousandsSeparatorIfUsed ( wxChar sep)
static

Get the thousands separator if grouping of the digits is used by the current UI locale.

The value returned in sep should be only used if the function returns true, otherwise no thousands separator should be used at all.

Parameters
sepPoints to the variable receiving the thousands separator character if it is used by the current UI locale. May be NULL if only the function return value is needed.

◆ ToString() [1/4]

static wxString wxNumberFormatter::ToString ( double  val,
int  precision,
int  flags = Style_WithThousandsSep 
)
static

Returns string representation of a floating point number.

Parameters
valThe variable to convert to a string.
precisionNumber of decimals to write in formatted string.
flagsCombination of values from the Style enumeration.

◆ ToString() [2/4]

static wxString wxNumberFormatter::ToString ( long long  val,
int  flags = Style_WithThousandsSep 
)
static

Returns string representation of an integer number.

By default, the string will use thousands separators if appropriate for the current UI locale. This can be avoided by passing Style_None as flags in which case the call to the function has exactly the same effect as wxString::Format("%ld", val).

Notice that calling ToString() with a value of type int and non-default flags results in ambiguity between this overload and the one below. To resolve it, you need to cast the value to long.

Parameters
valThe variable to convert to a string.
flagsCombination of values from the Style enumeration (except for Style_NoTrailingZeroes which can't be used with this overload).

◆ ToString() [3/4]

static wxString wxNumberFormatter::ToString ( long  val,
int  flags = Style_WithThousandsSep 
)
static

Returns string representation of an integer number.

By default, the string will use thousands separators if appropriate for the current UI locale. This can be avoided by passing Style_None as flags in which case the call to the function has exactly the same effect as wxString::Format("%ld", val).

Notice that calling ToString() with a value of type int and non-default flags results in ambiguity between this overload and the one below. To resolve it, you need to cast the value to long.

Parameters
valThe variable to convert to a string.
flagsCombination of values from the Style enumeration (except for Style_NoTrailingZeroes which can't be used with this overload).

◆ ToString() [4/4]

static wxString wxNumberFormatter::ToString ( unsigned long long  val,
int  flags = Style_WithThousandsSep 
)
static

Returns string representation of an integer number.

By default, the string will use thousands separators if appropriate for the current UI locale. This can be avoided by passing Style_None as flags in which case the call to the function has exactly the same effect as wxString::Format("%ld", val).

Notice that calling ToString() with a value of type int and non-default flags results in ambiguity between this overload and the one below. To resolve it, you need to cast the value to long.

Parameters
valThe variable to convert to a string.
flagsCombination of values from the Style enumeration (except for Style_NoTrailingZeroes which can't be used with this overload).