Ce face std::to_string
std::to_string(42) returnează textul "42". Este felul cel mai simplu de a lipi un număr la un text cu +.
Pentru numere reale, până la C++23 rezultatul avea mereu 6 zecimale (3.140000), ca printf("%f"). Din C++26 va folosi forma cea mai scurtă. Pentru control asupra zecimalelor folosește std::format("{:.2f}", x).
Parametri
| Parametru | Descriere |
|---|---|
valoare |
Numărul de transformat. |
Ce returnează
Un std::string nou.
Exemple
Exemplul 1: Numere lipite într-un mesaj
#include <iostream>
#include <string>
int main() {
int bucati = 3;
long long vizualizari = 1'250'000;
std::string mesaj = "Ai " + std::to_string(bucati) + " produse în coș.";
std::cout << mesaj << '\n';
std::cout << "Vizualizări: " + std::to_string(vizualizari) << '\n';
std::cout << "Lungimea lui -273: " << std::to_string(-273).size() << '\n';
}
Rezultat
Ai 3 produse în coș.
Vizualizări: 1250000
Lungimea lui -273: 4
Exemplul 2: Numerele reale au 6 zecimale
#include <format>
#include <iostream>
#include <string>
int main() {
double pret = 19.9;
std::cout << std::to_string(pret) << '\n';
std::cout << std::to_string(1.0 / 3) << '\n';
std::cout << std::format("{:.2f}", pret) << " (cu std::format)\n";
}
Rezultat
19.900000
0.333333
19.90 (cu std::format)
Greșeli frecvente
- Scrii
"Total: " + 5fărăto_string: nu primești „Total: 5”, ci un pointer mutat cu 5 poziții în text, care afișează doar „: ”. - Folosești
to_stringpentru prețuri:19.9devine19.900000. Foloseștestd::format.
Comenzi înrudite
std::stoi: Transformă un text în număr întreg (int, long, long long, unsigned long), cu excepții la erori.std::format: Construiește un std::string dintr-un șablon cu acolade {} și valori (C++20).std::to_chars: Scrie un număr ca text într-un tablou de char, foarte rapid, fără alocări și fără excepții.std::ostringstream: Flux de scriere într-un șir: construiește text cu << și manipulatori, apoi îl iei cu str().