"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como você converte com precisão floats em strings com precisão decimal especificada em C++?

Como você converte com precisão floats em strings com precisão decimal especificada em C++?

Publicado em 2024-11-18
Navegar:628

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

Conversão precisa de floats em strings com precisão decimal especificada

Em C , convertendo um número de ponto flutuante em uma string com precisão específica e dígitos decimais requerem consideração cuidadosa. Este guia explora duas soluções comuns: stringstream e a função to_chars do C 17.

Usando Stringstream

Stringstream é uma ferramenta versátil para manipular strings em C . Para converter um float em uma string com precisão especificada, manipuladores de fluxo podem ser aplicados:

#include 
#include 

double pi = 3.14159265359;
std::stringstream stream;
stream 
  • std::fixed garante que o número seja representado em notação de ponto fixo, com um ponto decimal e um número especificado de dígitos.
  • std::setprecision(2) controla o número de casas decimais a serem exibidas.

Usando a função to_chars (C 17 e acima)

Para fins mais técnicos, como gravar dados em XML ou JSON, a função to_chars introduzida em C 17 oferece uma solução 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
}
  • A função std::to_chars usa um buffer (no formato std::array), um número e uma especificação de formato (neste caso, std::chars_format::fixed com 2 casas decimais lugares).
  • Se a conversão for bem-sucedida, a string resultante será construída a partir do buffer.

Ao empregar essas técnicas, você pode converter flutua para strings em C com controle preciso sobre o número de dígitos decimais, garantindo que seus dados sejam representados com precisão e de acordo com seus requisitos.

Declaração de lançamento Este artigo foi reimpresso em: 1729721222 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3