将浮点数转换为字符串[重复]

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 以易于使用的方式包装了字符串流。

【讨论】:

以上是关于将浮点数转换为字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Javascript将浮点数转换为指数[重复]

将浮点数转换为美元和美分

将浮点数转换为字符串

C将浮点数转换为int

将浮点数转换为 hh:mm 格式

将浮点数转换为字符串而不会丢失精度