The
localeconv()
function returns a pointer to a structure
which provides parameters for formatting numbers,
especially currency values:
struct lconv {
char *decimal_point;
char *thousands_sep;
char *grouping;
char *int_curr_symbol;
char *currency_symbol;
char *mon_decimal_point;
char *mon_thousands_sep;
char *mon_grouping;
char *positive_sign;
char *negative_sign;
char int_frac_digits;
char frac_digits;
char p_cs_precedes;
char p_sep_by_space;
char n_cs_precedes;
char n_sep_by_space;
char p_sign_posn;
char n_sign_posn;
char int_p_cs_precedes;
char int_n_cs_precedes;
char int_p_sep_by_space;
char int_n_sep_by_space;
char int_p_sign_posn;
char int_n_sign_posn;
};
The individual fields have the following meanings:
decimal_point
|
|
The decimal point character, except for currency values,
cannot be an empty string.
|
thousands_sep
|
|
The separator between groups of digits
before the decimal point, except for currency values.
|
grouping
|
|
The sizes of the groups of digits, except for currency values.
This is a pointer to a vector of integers, each of size
char,
representing group size from low order digit groups
to high order (right to left).
The list may be terminated with 0 or
CHAR_MAX.
If the list is terminated with 0,
the last group size before the 0 is repeated to account for all the digits.
If the list is terminated with
CHAR_MAX,
no more grouping is performed.
|
int_curr_symbol
|
|
The standardized international currency symbol.
|
currency_symbol
|
|
The local currency symbol.
|
mon_decimal_point
|
|
The decimal point character for currency values.
|
mon_thousands_sep
|
|
The separator for digit groups in currency values.
|
mon_grouping
|
|
Like
grouping
but for currency values.
|
positive_sign
|
|
The character used to denote nonnegative currency values,
usually the empty string.
|
negative_sign
|
|
The character used to denote negative currency values,
usually a minus sign.
|
int_frac_digits
|
|
The number of digits after the decimal point
in an international-style currency value.
|
frac_digits
|
|
The number of digits after the decimal point
in the local style for currency values.
|
p_cs_precedes
|
|
1 if the currency symbol precedes the currency value
for nonnegative values, 0 if it follows.
|
p_sep_by_space
|
|
1 if a space is inserted between the currency symbol
and the currency value for nonnegative values, 0 otherwise.
|
n_cs_precedes
|
|
Like
p_cs_precedes
but for negative values.
|
n_sep_by_space
|
|
Like
p_sep_by_space
but for negative values.
|
p_sign_posn
|
|
The location of the
positive_sign
with respect to a nonnegative quantity and the
currency_symbol,
coded as follows:
|
0
|
Parentheses around the entire string.
|
1
|
Before the string.
|
2
|
After the string.
|
3
|
Just before
currency_symbol.
|
4
|
Just after
currency_symbol.
|
n_sign_posn
|
|
Like
p_sign_posn
but for negative currency values.
|
int_p_cs_precedes
|
|
Same as
p_cs_precedes,
but for internationally formatted monetary quantities.
|
int_n_cs_precedes
|
|
Same as
n_cs_precedes,
but for internationally formatted monetary quantities.
|
int_p_sep_by_space
|
|
Same as
p_sep_by_space,
but for internationally formatted monetary quantities.
|
int_n_sep_by_space
|
|
Same as
n_sep_by_space,
but for internationally formatted monetary quantities.
|
int_p_sign_posn
|
|
Same as
p_sign_posn,
but for internationally formatted monetary quantities.
|
int_n_sign_posn
|
|
Same as
n_sign_posn,
but for internationally formatted monetary quantities.
|
Unless mentioned above,
an empty string as a value for a field
indicates a zero length result or
a value that is not in the current locale.
A
CHAR_MAX
result similarly denotes an unavailable value.
The
localeconv_l()
function takes an explicit locale parameter.
For more information, see
xlocale(3).