lconv
|
Definido en el encabezado
<locale.h>
|
||
|
struct
lconv
;
|
||
La estructura
lconv
contiene reglas de formato numérico y monetario definidas por una configuración regional de C. Los objetos de esta estructura pueden obtenerse con
localeconv
. Los miembros de
lconv
son valores de tipo
char
y de tipo
char
*
. Cada miembro
char
*
excepto
decimal_point
puede apuntar a un carácter nulo (es decir, a una cadena C vacía). Los miembros de tipo
char
son todos números no negativos, cualquiera de los cuales puede ser
CHAR_MAX
si el valor correspondiente no está disponible en la configuración regional actual de C.
Contenidos |
Objetos miembro
Parámetros de formato numérico no monetario
|
char*
decimal_point
|
el carácter utilizado como punto decimal
(objeto miembro público) |
|
char*
thousands_sep
|
el carácter utilizado para separar grupos de dígitos antes del punto decimal
(objeto miembro público) |
|
char*
grouping
|
una cadena cuyos elementos indican los tamaños de los grupos de dígitos
(objeto miembro público) |
Parámetros de formato numérico monetario
|
char*
mon_decimal_point
|
el carácter utilizado como punto decimal
(objeto miembro público) |
|
char*
mon_thousands_sep
|
el carácter utilizado para separar grupos de dígitos antes del punto decimal
(objeto miembro público) |
|
char*
mon_grouping
|
una cadena cuyos elementos indican los tamaños de los grupos de dígitos
(objeto miembro público) |
|
char*
positive_sign
|
una cadena utilizada para indicar cantidades monetarias no negativas
(objeto miembro público) |
|
char*
negative_sign
|
una cadena utilizada para indicar cantidades monetarias negativas
(objeto miembro público) |
Parámetros de formato numérico monetario local
|
char*
currency_symbol
|
el símbolo utilizado para la moneda en la configuración regional actual de C
(objeto miembro público) |
|
char
frac_digits
|
el número de dígitos después del punto decimal para mostrar en una cantidad monetaria
(objeto miembro público) |
|
char
p_cs_precedes
|
1
si
currency_symbol
se coloca antes del valor no negativo,
0
si después
(objeto miembro público) |
|
char
n_cs_precedes
|
1
si
currency_symbol
se coloca antes del valor negativo,
0
si después
(objeto miembro público) |
|
char
p_sep_by_space
|
indica la separación entre
currency_symbol
,
positive_sign
y el valor monetario no negativo
(objeto miembro público) |
|
char
n_sep_by_space
|
indica la separación entre
currency_symbol
,
negative_sign
y el valor monetario negativo
(objeto miembro público) |
|
char
p_sign_posn
|
indica la posición de
positive_sign
en un valor monetario no negativo
(objeto miembro público) |
|
char
n_sign_posn
|
indica la posición de
negative_sign
en un valor monetario negativo
(objeto miembro público) |
Parámetros de formato numérico monetario internacional
|
char*
int_curr_symbol
|
la cadena utilizada como nombre de moneda internacional en la configuración regional C actual
(objeto miembro público) |
|
char
int_frac_digits
|
el número de dígitos después del punto decimal a mostrar en una cantidad monetaria internacional
(objeto miembro público) |
|
char
int_p_cs_precedes
(C99)
|
1
si
int_curr_symbol
se coloca antes del valor monetario internacional no negativo,
0
si se coloca después
(objeto miembro público) |
|
char
int_n_cs_precedes
(C99)
|
1
si
int_curr_symbol
se coloca antes del valor monetario internacional negativo,
0
si se coloca después
(objeto miembro público) |
|
char
int_p_sep_by_space
(C99)
|
indica la separación entre
int_curr_symbol
,
positive_sign
y el valor monetario internacional no negativo
(objeto miembro público) |
|
char
int_n_sep_by_space
(C99)
|
indica la separación entre
int_curr_symbol
,
negative_sign
y el valor monetario internacional negativo
(objeto miembro público) |
|
char
int_p_sign_posn
(C99)
|
indica la posición de
positive_sign
en un valor monetario internacional no negativo
(objeto miembro público) |
|
char
int_n_sign_posn
(C99)
|
indica la posición de
negative_sign
en un valor monetario internacional negativo
(objeto miembro público) |
Los caracteres de las cadenas C apuntadas por grouping y mon_grouping se interpretan según sus valores numéricos. Cuando se encuentra el terminador ' \0 ' , se asume que el último valor visto se repite para el resto de dígitos. Si se encuentra CHAR_MAX , no se agrupan más dígitos. La agrupación típica de tres dígitos a la vez es " \003 " .
Los valores de p_sep_by_space , n_sep_by_space , int_p_sep_by_space , int_n_sep_by_space se interpretan de la siguiente manera:
| 0 | no hay espacio entre el símbolo de moneda y el valor |
| 1 | el signo se une al símbolo de moneda, el valor se separa con un espacio |
| 2 | el signo se une al valor. El símbolo de moneda se separa con un espacio |
Los valores de p_sign_posn , n_sign_posn , int_p_sign_posn , int_n_sign_posn se interpretan de la siguiente manera:
| 0 | se utilizan paréntesis alrededor del valor y el símbolo de moneda para representar el signo |
| 1 | signo antes del valor y el símbolo de moneda |
| 2 | signo después del valor y el símbolo de moneda |
| 3 | signo antes del símbolo de moneda |
| 4 | signo después del símbolo de moneda |
Ejemplo
#include <locale.h> #include <stdio.h> int main(void) { setlocale(LC_ALL, "ja_JP.UTF-8"); struct lconv* lc = localeconv(); printf("Japanese currency symbol: %s(%s)\n", lc->currency_symbol, lc->int_curr_symbol); }
Salida posible:
Japanese currency symbol: ¥(JPY )
Referencias
- Estándar C23 (ISO/IEC 9899:2024):
-
- 7.11/2 Localización <locale.h> (p: TBD)
- Estándar C17 (ISO/IEC 9899:2018):
-
- 7.11/2 Localización <locale.h> (p: TBD)
- Estándar C11 (ISO/IEC 9899:2011):
-
- 7.11/2 Localización <locale.h> (p: 223)
- Estándar C99 (ISO/IEC 9899:1999):
-
- 7.11/2 Localización <locale.h> (p: 204)
- Estándar C89/C90 (ISO/IEC 9899:1990):
-
- 4.4 LOCALIZACIÓN <locale.h>
Véase también
|
consulta los detalles de formato numérico y monetario de la configuración regional actual
(función) |
|
|
Documentación de C++
para
lconv
|
|