要在没有科学记数法的情况下将double转换为字符串,建议的方法是
std::ostringstream strStream;
strStream << std::fixed;
strStream << value;
std::string str = strStream.str();
如同 Prevent scientific notation in ostream when using << with double&amp; How do I convert a double into a string in C++?
我想将double转换为不带任何分隔符的字符串,并将Dot / Full-stop转换为小数点,即忽略区域设置。
从ostringstream,std::fixed和showpoint的说明中,我无法确定
如果它按照当前的语言环境,那么覆盖的方式是什么 - 它总是以小数点作为Dot / Full-stop并且没有分组?
答案 0 :(得分:3)
是的,流的默认语言环境是构造时的当前全局语言环境(请参阅您最喜欢的引用中的basic_ios::init
的说明,然后检查流的类型是否也没有 - 没有标准类确实如此。
要更改区域设置,请使用basic_ios::imbue
,因此您可能需要添加
strStream.imbue(std::locale::classic());
定义strStream
。