C++ 如何使用std::to_string函数将float格式化为“;x、 0”;

C++ 如何使用std::to_string函数将float格式化为“;x、 0”;,c++,c++11,C++,C++11,我正在使用std::to_string函数将float转换为string float number = 30.0f; // this number will vary 当我将浮点数转换为字符串时 std::to_string(number); std::cout将结果显示为30.000000 我希望结果为30.0,并删除多余的零。根据文档 使用浮点类型时,std::to_string可能会产生意外的结果 因为返回字符串中的有效位数可以为零 但是,您可以按照本节中的说明设置精度 不支持这

我正在使用std::to_string函数将float转换为string

 float number = 30.0f;  // this number will vary
当我将浮点数转换为字符串时

 std::to_string(number);
std::cout将结果显示为30.000000


我希望结果为30.0,并删除多余的零。

根据文档

使用浮点类型时,
std::to_string
可能会产生意外的结果 因为返回字符串中的有效位数可以为零

但是,您可以按照本节中的说明设置精度 不支持这一点,事实上,对于任意浮点值来说,这一点通常不是很好

既然你的问题被标记了,我知道有两种方法。首先,您有
std::stringstream
,它是类型安全的,可以处理任意类型:

#包括
// ...
浮点数=30.0f;
std::ostringstream oss;

oss见。。请注意,to_字符串不支持此用例。(链接提示了一个合适的替换功能。)这是否回答了您的问题?这个答案的结论意味着(部分通过链接问题的标题)可以设置为_字符串精度,这是不正确的。