Saltar al contenido

Cómo convertir size_t en double o int C++

Intenta interpretar el código de forma correcta previamente a aplicarlo a tu proyecto si tdeseas aportar algo puedes dejarlo en los comentarios.

Solución:

Un elenco, como sugirió Blaz Bratanic:

size_t data = 99999999;
int convertdata = static_cast(data);

es probable que silencie la advertencia (aunque, en principio, un compilador puede advertir sobre lo que quiera, incluso si hay un lanzamiento).

Pero no resuelve el problema del que te hablaba la advertencia, es decir, que una conversión de size_t para int realmente podría desbordarse.

Si es posible, diseñe su programa para que no necesitar para convertir un size_t valor a int. Solo guárdelo en un size_t variable (como ya lo ha hecho) y utilícela.

Convirtiendo a double no causará un desbordamiento, pero podría resultar en una pérdida de precisión para un número muy grande size_t valor. Una vez más, no tiene mucho sentido convertir un size_t a un double; aún es mejor mantener el valor en un size_t variable.

(La respuesta de R Sahu tiene algunas sugerencias si no puede evitar el lanzamiento, como lanzar una excepción en el desbordamiento).

Si su código está preparado para lidiar con errores de desbordamiento, puede lanzar una excepción si data Es demasiado largo.

size_t data = 99999999;
if ( data > INT_MAX )

   throw std::overflow_error("data is larger than INT_MAX");

int convertData = static_cast(data);

Reparto estático:

static_cast(data);

Aquí tienes las reseñas y valoraciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *