LOCALECONV(3) | Library Functions Manual | LOCALECONV(3)

# NAME

`localeconv` — retrieve parameters for locale-dependent formatting of numbers

# SYNOPSIS

`#include <locale.h>`

struct lconv *
`localeconv`(void);

# DESCRIPTION

The `localeconv`() function returns a pointer to a static structure which provides parameters for locale(1)-dependent formatting of numbers. On OpenBSD, nothing in the returned structure ever changes. On other operating systems, the contents of the structure may vary according to the `LC_NUMERIC` and `LC_MONETARY` locale categories.

It provides the following fields of type char *:

decimal_point
  The decimal point character, except for currency values.
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 non-negative currency values, usually the empty string.
negative_sign
  The character used to denote negative currency values, usually a minus sign.

It also provides the following fields of type char:

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 non-negative values, 0 if it follows.
p_sep_by_space
  1 if a space is inserted between the currency symbol and the currency value for non-negative 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 non-negative 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
  Like p_cs_precedes but for the international symbol.
int_n_cs_precedes
  Like n_cs_precedes but for the international symbol.
int_p_sep_by_space
  Like p_sep_by_space but for the international symbol.
int_n_sep_by_space
  Like n_sep_by_space but for the international symbol.
int_p_sign_posn
  Like p_sign_posn but for the international symbol.
int_n_sign_posn
  Like n_sign_posn but for the international symbol.

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.

# SEE ALSO

locale(1), nl_langinfo(3), setlocale(3)

# STANDARDS

The `localeconv`() function conforms to ANSI X3.159-1989 (“ANSI C89”).

# HISTORY

The `localeconv`() function first appeared in 4.3BSD-Net/2.

September 11, 2022 | Debian