今天尝试了C++11 STL的一些新功能,遇到了std::to_string
.
可爱的,可爱的一组功能。创建一个 stringstream 对象来进行一次双精度到字符串的转换对我来说总是显得有些过分,所以我很高兴我们现在可以做这样的事情:
std::cout << std::to_string(0.33) << std::endl;
结果?
0.330000
我对此并不完全满意。有没有办法告诉std::to_string
省略尾随零?我在互联网上搜索,但据我所知,该函数只需要一个参数(要转换的值)。回到字符串流的“过去”,您可以设置流的宽度,但我不想转换回来。
有人以前遇到过这个问题/有解决方案吗?一些 StackOverflow 搜索没有结果。
(C++11 STL 参考:http://en.cppreference.com/w/cpp/string/basic_string/to_string http://en.cppreference.com/w/cpp/string/basic_string/to_string)
如果您只想删除尾随零,那很简单。
std::string str = std::to_string (f);
str.erase ( str.find_last_not_of('0') + 1, std::string::npos );
str.erase ( str.find_last_not_of('.') + 1, std::string::npos );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)