C++ 如何使用std::to_string函数将float格式化为“;x、 0”;
我正在使用std::to_string函数将float转换为stringC++ 如何使用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可能会产生意外的结果 因为返回字符串中的有效位数可以为零 但是,您可以按照本节中的说明设置精度 不支持这
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_字符串不支持此用例。(链接提示了一个合适的替换功能。)这是否回答了您的问题?这个答案的结论意味着(部分通过链接问题的标题)可以设置为_字符串精度,这是不正确的。