Menu
Coddy logo textTech

Type Casting Parte 2

Parte de la sección Fundamentos del Journey de C++ de Coddy — lección 15 de 74.

En C++, podemos convertir números a cadenas y viceversa. Para convertir un valor a cadena, podemos usar la función std::to_string():

int number = 789;
bool isValid = true;
string text1 = to_string(number);  // se convierte en "789"
string text2 = isValid ? "true" : "false";  // se convierte en "true"

Cuando conviertes un double a un string usando to_string(), mostrará por defecto 6 decimales, incluso si el número original no tiene tantos decimales.

Por ejemplo:

double n1 = 789.0;
string text1 = to_string(n1);
// se convierte en "789.000000"

double n2 = 789.5;
string text2 = to_string(n2);
// se convierte en "789.500000"

double n3 = 789.123;
string text3 = to_string(n3);
// se convierte en "789.123000"

Para convertir una cadena a un tipo diferente, tenemos varias opciones:

Cadena a entero:

string numberText = "123";
int number = stoi(numberText);  // se convierte en 123

String to Double:

string decimalText = "45.67";
double decimal = stod(decimalText);  // se convierte en 45.67

Nota: Al convertir cadenas a números, estas funciones leen tantos caracteres válidos como sea posible desde el inicio de la cadena. Solo lanzan un error si la cadena comienza con un carácter no válido:

string validStart = "42abc";
int number = stoi(validStart);  // se convierte en 42 (se ignoran las letras finales)

string invalidStart = "abc";
int number2 = stoi(invalidStart);  // Esto lanzará un error

Hoja de referencia

Convierte números a cadenas usando std::to_string():

int number = 789;
string text = to_string(number);  // se convierte en "789"

La conversión de doubles muestra 6 decimales por defecto:

double n = 789.5;
string text = to_string(n);  // se convierte en "789.500000"

Convierte cadenas a enteros usando stoi():

string numberText = "123";
int number = stoi(numberText);  // se convierte en 123

Convierte cadenas a doubles usando stod():

string decimalText = "45.67";
double decimal = stod(decimalText);  // se convierte en 45.67

Nota: Convertir cadenas no válidas a números lanzará un error.

Pruébalo tú mismo

Esta lección no incluye un desafío de código.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos