将浮点数转换为字符串[重复]
Posted
技术标签:
【中文标题】将浮点数转换为字符串[重复]【英文标题】:convert float to string [duplicate] 【发布时间】:2011-04-26 17:18:58 【问题描述】:可能重复:Convert double to string C++?
我在页面中搜索,但没有找到解决方案。
我有一个从 int 转换为 string 的方法。但现在我需要从浮点/双精度转换为字符串。因为我想在文件中写入一些数据。
谁能帮帮我??
提前致谢。
【问题讨论】:
字符串是指C++字符串还是char *? 我已经用 C 语言做了一些基本的东西,我想像 char incy = (char *) bincy;不过,我可能完全错了。 :) 为什么将数据写入文件需要转换为字符串?fprintf(outFile, "%f\n", floatVar);
怎么样?
我需要在打印/写入变量之前进行转换。感谢您的回答。
【参考方案1】:
http://www.daniweb.com/software-development/cpp/threads/146718
#include <sstream>
std::string Convert (float number)
std::ostringstream buff;
buff<<number;
return buff.str();
【讨论】:
【参考方案2】:你可以使用sprintf。
您可以将stringstream 与
另请参阅Convert double to string C++?、How do I convert a double into a string in C++?、Convert double to string using boost::lexical_cast in C++?、Converting Double to String in C++ 等。
【讨论】:
【参考方案3】:不能使用标准 (C) 函数 sprintf/fprintf 等吗?
【讨论】:
不,我需要在写入文件之前进行转换。 sprintf 允许您“转换”(真正的格式)为字符串(char *)——然后您可以将其写入文件或随心所欲地处理它。 请注意,Windows 直到最近才支持与 linux 相同的 snprintf 命令,并且它们的工作方式也不相同。这导致了代码的可移植性问题。在最新的 Visual Studio 中,Microsoft 的 snprintf 实现符合标准。【参考方案4】:这可以帮助你:Convert double to string C++?
【讨论】:
【参考方案5】:您的文件是使用 iostreams 编写的吗?如果是这样,请这样做:
stream << number;
如果没有,并且您确实需要一个字符串,您可以为此使用ostringstream
。 Boost 的lexical_cast
以易于使用的方式包装了字符串流。
【讨论】:
以上是关于将浮点数转换为字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章