Name

localeconv -gets numeric formatting information

Library

libc.lib

Synopsis

  #include <locale.h>
  struct lconv * localeconv (void);

Return values

The localeconv function returns a pointer to a static object which may be altered by later calls to setlocale or localeconv.

Detailed description

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


Examples

#include<stdio.h>
#include<locale.h>
int main()
{
        //Set the locale to German
        char* locale = setlocale(LC_ALL,"de_DE.ISO-8859-1");
        struct lconv* str = NULL;
        //Check whether locale setting is succesful or not
        if(NULL != locale)
        {
              printf("Locale setting is successful\n");
              printf("Locale is set to %s\n", locale);
              //Get numeric formatting information
              str = localeconv();
              printf("Decimal separator is %s\n", str->mon_decimal_point);
              printf("Thousand separator is %s\n", str->mon_thousands_sep);
        }
        else
        {
              printf("Locale setting failed\n");
        }
        return 0;
}

         

Output

Locale setting is successful
Locale is set to de_DE.ISO-8859-1
Decimal separator is,
Thousand separator is.

         

Errors

No errors are defined.

See also

setlocale, strfmon

Feedback

For additional information or queries on this page send feedback

© 2005-2007 Nokia

Top