Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
localeconv(3C)		 Standard C Library Functions		localeconv(3C)

NAME
       localeconv - get	numeric	formatting information

SYNOPSIS
       #include	<locale.h>

       struct lconv *localeconv(void);

DESCRIPTION
       The  localeconv()  function  sets the components	of an object with type
       struct lconv (defined in	<locale.h>) with the  values  appropriate  for
       the formatting of numeric quantities (monetary and otherwise) according
       to the rules of the current locale (see setlocale(3C)). The  definition
       of  struct  lconv is given  below (the values for the fields in the "C"
       locale are given	in comments).

       char *decimal_point;	   /* "." */
       char *thousands_sep;	   /* "" (zero length string) */
       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_MAX */
       char frac_digits;	   /* CHAR_MAX */
       char p_cs_precedes;	   /* CHAR_MAX */
       char p_sep_by_space;	   /* CHAR_MAX */
       char n_cs_precedes;	   /* CHAR_MAX */
       char n_sep_by_space;	   /* CHAR_MAX */
       char p_sign_posn;	   /* CHAR_MAX*/
       char n_sign_posn;	   /* CHAR_MAX */

       The following members are also available	to  SUSv3-conforming  applica-
       tions. See standards(5)

       char int_p_cs_precedes;	   /* CHAR_MAX */
       char int_p_sep_by_space;	   /* CHAR_MAX */
       char int_n_cs_precedes;	   /* CHAR_MAX */
       char int_n_sep_by_space;	   /* CHAR_MAX */
       char int_p_sign_posn;	   /* CHAR_MAX */
       char int_n_sign_posn;	   /* CHAR_MAX */

       The members of the structure with type char * are strings, any of which
       (except decimal_point) can point	to a null  string  (""),  to  indicate
       that  the  value	 is  not available in the current locale or is of zero
       length. The members with	type char are  non-negative  numbers,  any  of
       which  can  be  CHAR_MAX	(defined in the	<limits.h> header) to indicate
       that the	value is not available in the current locale. The members  are
       the following:

       char *decimal_point

	   The decimal-point character used to format non-monetary quantities.

       char *thousands_sep

	   The	character used to separate groups of digits to the left	of the
	   decimal-point character in formatted	non-monetary quantities.

       char *grouping

	   A string whose elements taken as one-byte integer  values  indicate
	   the	size of	each group of digits in	formatted non-monetary quanti-
	   ties.

       char *int_curr_symbol

	   The international currency symbol applicable	to the current locale.
	   The	first  three  characters  contain the alphabetic international
	   currency symbol in accordance with those specified in the ISO 4217:
	   1995	standard. The fourth character (immediately preceding the null
	   byte) is the	character used to separate the international  currency
	   symbol from the monetary quantity.

       char *currency_symbol

	   The local currency symbol applicable	to the current locale.

       char *mon_decimal_point

	   The decimal point used to format monetary quantities.

       char *mon_thousands_sep

	   The separator for groups of digits to the left of the decimal point
	   in formatted	monetary quantities.

       char *mon_grouping

	   A string whose elements taken as one-byte integer  values  indicate
	   the size of each group of digits in formatted monetary quantities.

       char *positive_sign

	   The	string	used to	indicate a non-negative-valued formatted mone-
	   tary	quantity.

       char *negative_sign

	   The string used to indicate a  negative-valued  formatted  monetary
	   quantity.

       char int_frac_digits

	   The	number of fractional digits (those to the right	of the decimal
	   point) to be	displayed in  an  internationally  formatted  monetary
	   quantity.

       char frac_digits

	   The	number of fractional digits (those to the right	of the decimal
	   point) to be	displayed in a formatted monetary quantity.

       char p_cs_precedes

	   Set to 1 or 0 if the	currency_symbol	respectively precedes or  suc-
	   ceeds the value for a non-negative formatted	monetary quantity.

       char p_sep_by_space

	   Set to 0 if no space	separates the currency_symbol or int_curr_sym-
	   bol from the	value for a non-negative formatted monetary  quantity.
	   Set to 1 if a space separates the symbol from the value; and	set to
	   2 if	a space	separates the symbol and the sign string, if adjacent.

       char n_cs_precedes

	   Set to 1 or 0 if the	currency_symbol	respectively precedes or  suc-
	   ceeds the value for a negative formatted monetary quantity.

       char n_sep_by_space

	   Set to 0 if no space	separates the currency_symbol or int_curr_sym-
	   bol from the	value for a negative formatted monetary	quantity.  Set
	   to  1  if a space separates the symbol from the value; and set to 2
	   if a	space separates	the symbol and the sign	string,	if adjacent.

       char p_sign_posn

	   Set to a value indicating the positioning of	the positive_sign  for
	   a non-negative formatted monetary quantity.

       char n_sign_posn

	   Set	to a value indicating the positioning of the negative_sign for
	   a negative formatted	monetary quantity.

       char int_p_cs_precedes

	   Set to 1 or 0 if the	int_curr_symbol	respectively precedes or  suc-
	   ceeds  the value for	a non-negative internationally formatted mone-
	   tary	quantity.

       char int_n_cs_precedes

	   Set to 1 or 0 if the	int_curr_symbol	respectively precedes or  suc-
	   ceeds  the  value for a negative internationally formatted monetary
	   quantity.

       char int_p_sep_by_space

	   Set to a value indicating the separation  of	 the  int_curr_symbol,
	   the	sign  string, and the value for	a non-negative internationally
	   formatted monetary quantity.

       char int_n_sep_by_space

	   Set to a value indicating the separation  of	 the  int_curr_symbol,
	   the	sign string, and the value for a negative internationally for-
	   matted monetary quantity.

       char int_p_sign_posn

	   Set to a value indicating the positioning of	the positive_sign  for
	   a non-negative internationally formatted monetary quantity.

       char int_n_sign_posn

	   Set	to a value indicating the positioning of the negative_sign for
	   a negative internationally formatted	monetary quantity.

       The elements of grouping	and mon_grouping are interpreted according  to
       the following:

       {CHAR_MAX}      No further grouping is to be performed.

       0	       The  previous  element is to be repeatedly used for the
		       remainder of the	digits.

       other	       The integer value is the	number of digits that comprise
		       the  current group. The next element is examined	to de-
		       termine the size	of the next group of digits before the
		       current group.

       The  values  of p_sep_by_space, n_sep_by_space, int_p_sep_by_space, and
       int_n_sep_by_space are interpreted according to the following:

       0	No space separates the currency	symbol and value.

       1	If the currency	symbol and sign	string are adjacent,  a	 space
		separates  them	 from  the value; otherwise, a space separates
		the currency symbol from the value.

       2	If the currency	symbol and sign	string are adjacent,  a	 space
		separates  them;  otherwise, a space separates the sign	string
		from the value.

       In  an  SUSv3-conforming	 application,	for   int_p_sep_by_space   and
       int_n_sep_by_space, the fourth character	of int_curr_symbol is used in-
       stead of	a space.

       The  values   of	  p_sign_posn,	 n_sign_posn,	int_p_sign_posn,   and
       int_n_sign_posn are interpreted according to the	following:

       0	Parentheses  surround  the  quantity  and  currency_symbol  or
		int_curr_symbol.

       1	The sign string	precedes the quantity and  currency_symbol  or
		int_curr_symbol.

       2	The  sign  string succeeds the quantity	and currency_symbol or
		int_curr_symbol.

       3	The sign string	immediately precedes  the  currency_symbol  or
		int_curr_symbol.

       4	The  sign  string  immediately succeeds	the currency_symbol or
		int_curr_symbol.

RETURN VALUES
       The localeconv()	function returns a pointer to  the  filled-in  object.
       The  structure  pointed to by the return	value may be overwritten  by a
       subsequent call to localeconv().

EXAMPLES
       Example 1: Rules	used by	four countries to format monetary quantities.

       The following table illustrates the rules used  by  four	 countries  to
       format monetary quantities.

	   Country	     Positive	      Negative	    International
       Italy (IT)	  L.1.234	   -L.1.234	    ITL.1.234
       Netherlands (NE)	  F 1.234,56	   F -1.234,56	    NLG	1.234,56
       Norway (NO)	  kr1.234,56	   kr1.234,56-	    NOK	1.234,56
       Switzerland (SW)	  SFrs.1,234.56	   SFrs.1,234.56C   CHF	1,234.56

       For  these  four	countries, the respective values for the monetary mem-
       bers of the structure returned by localeconv() are as follows:

				      IT       NE	 NO	   SW
       int_curr_symbol		      "ITL."   "NLG "	 "NOK "	   "CHF	"
       currency_symbol		       "L."	 "F"	  "kr"	   "SFrs."
       mon_decimal_point		""	 ","	   ","	     "."
       mon_thousands_sep	       "."	 "."	   "."	     ","
       mon_grouping		       "\3"	"\3"	  "\3"	    "\3"
       positive_sign			""	 ""	   ""	     ""
       negative_sign		       "-"	 "-"	   "-"	     "C"
       int_frac_digits			0	  2	    2	      2
       frac_digits			0	  2	    2	      2

       p_cs_precedes			1	  1	    1	      1
       p_sep_by_space			0	  1	    0	      0
       n_cs_precedes			1	  1	    1	      1
       n_sep_by_space			0	  1	    0	      0
       p_sign_posn			1	  1	    1	      1
       n_sign_posn			1	  4	    2	      2
       int_p_cs_precedes		1	  1	    1	      1
       int_n_cs_precedes		1	  1	    1	      1
       int_p_sep_by_space		0	  0	    0	      0
       int_n_sep_by_space		0	  0	    0	      0
       int_p_sign_posn			1	  1	    1	      1
       int_n_sign_posn			1	  4	    4	      2

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |CSI			     |Enabled			   |
       +-----------------------------+-----------------------------+
       |Interface Stability	     |Standard			   |
       +-----------------------------+-----------------------------+
       |MT-Level		     |MT-Safe with exceptions	   |
       +-----------------------------+-----------------------------+

       The localeconv()	function can be	used safely in multithreaded  applica-
       tions,  as  long	as setlocale(3C) is not	being called to	change the lo-
       cale.

SEE ALSO
       setlocale(3C), attributes(5), environ(5), standards(5)

SunOS 5.10			  12 Dec 2003			localeconv(3C)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | EXAMPLES | ATTRIBUTES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=localeconv&sektion=3c&manpath=SunOS+5.10>

home | help