Trong tiêu đề của C++ 11, có ba hàm mới để chuyển đổi giữa số và chuỗi.Chuyển đổi số
std::string std::to_string(unsigned long long);
std::string std::to_string(long double);
std::string std::to_string(long long);
Câu hỏi đầu tiên - tại sao chỉ có 3 chức năng? Điều gì về int đơn giản hoặc int unsigned, vv?
Câu hỏi thứ hai - tại sao to_string không loại trừ ngoại lệ trong mã sau?
long double x = std::numeric_limits<long double>::quiet_NaN();
std::string i = std::to_string(x);
long double c = std::stold(i); // i = "1.#QNAN"
Và câu hỏi thứ ba - tại sao c bằng 1.0?
phỏng đoán hoang dã, nhưng có thể chỉ ba số này tồn tại vì số nguyên nhỏ hơn và các loại dấu phẩy động có thể dễ dàng chuyển đổi chúng mà không mất thông tin. – Collin