Em C++, você pode converter um double em uma string usando a função sprintf. Ela formata uma série de valores o resultado em um array de caracteres.
#include <cstdio>
#include <iostream>
int main() {
double value = 3.14159265;
char buffer[100];
int decimalPlaces = 2;
sprintf(buffer, "%.*f", decimalPlaces, value);
std::string result(buffer);
std::cout << result << std::endl;
return 0;
}
Neste exemplo, decimalPlaces é o número de casas decimais que você deseja exibir. O .* na string de formato informa ao sprintf para usar o valor de decimalPlaces como o número de casas decimais. O f na string de formato informa ao sprintf para formatar o valor como um número de ponto flutuante. A string resultante é armazenada no array de caracteres buffer, e então é convertida para uma std::string e impressa no console.
sprintf não é recomendado para uso em C++ moderno, porque pode ser perigoso se o tamanho do buffer não for suficiente para armazenar a string resultante.
Uma alternativa mais segura é usar a classe std::ostringstream, assim:
#include <sstream>
#include <iostream>
int main() {
double value = 3.14159265;
int decimalPlaces = 2;
std::ostringstream oss;
oss.precision(decimalPlaces);
oss << std::fixed << value;
std::string result = oss.str();
std::cout << result << std::endl;
return 0;
}
Neste exemplo, o método precision define o número de casas decimais a serem exibidas, e o manipulador fixed faz com que o valor seja exibido na notação de ponto fixo. O método str retorna a string resultante.