"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo se convierten con precisión flotantes en cadenas con precisión decimal especificada en C++?

¿Cómo se convierten con precisión flotantes en cadenas con precisión decimal especificada en C++?

Publicado el 2024-11-18
Navegar:595

How Do You Precisely Convert Floats to Strings with Specified Decimal Precision in C  ?

Conversión precisa de flotantes en cadenas con precisión decimal especificada

En C, convertir un número de punto flotante en una cadena con precisión específica y Los dígitos decimales requieren una consideración cuidadosa. Esta guía explora dos soluciones comunes: stringstream y la función to_chars de C 17.

Uso de Stringstream

Stringstream es una herramienta versátil para manipular cadenas en C. Para convertir un flotante en una cadena con una precisión especificada, se pueden aplicar manipuladores de flujo:

#include 
#include 

double pi = 3.14159265359;
std::stringstream stream;
stream 
  • std::fixed garantiza que el número se represente en notación de punto fijo, con un punto decimal y un número específico de dígitos.
  • std::setprecision(2) controla el número de decimales que se mostrarán.

Uso de la función to_chars (C 17 y superior)

Para Para fines más técnicos, como escribir datos en XML o JSON, la función to_chars introducida en C 17 ofrece una solución concisa:

#include 
#include 

double pi = 3.14159265359;
std::array buffer;
auto [ptr, ec] = std::to_chars(buffer.data(), buffer.data()   buffer.size(), pi,
                               std::chars_format::fixed, 2);
if (ec == std::errc{}) {
    std::string s(buffer.data(), ptr);
}
else {
    // Error handling
}
  • La función std::to_chars toma un búfer (en forma std::array), un número y una especificación de formato (en este caso, std::chars_format::fixed con 2 decimales lugares).
  • Si la conversión se realiza correctamente, la cadena resultante se construye a partir del búfer.

Al emplear estas técnicas, puede convertir puntos flotantes en cadenas en C con un control preciso sobre el número de dígitos decimales, lo que garantiza que sus datos se representen con precisión y de acuerdo con sus requisitos.

Declaración de liberación Este artículo se reimprime en: 1729721222 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3