c++ - 以科学计数法将double转换为字符串比c++中的sprintf更快

标签 c++ string double number-formatting scientific-notation

如题,如何比c++中的sprintf更快地将double转为科学计数法的string?

我有很多(大约 1e10)双数,必须将所有数字转换为这种格式的字符串:±*.*********E±***,它有 10 个有效数字。

但是sprintfstringstream太慢了,有没有更快的方法?

谢谢。

最佳答案

使用boost是一个出路

std::string str = boost::lexical_cast<std::string>(dbl);

正常做法:

std::ostringstream strs;
strs << dbl;
std::string str = strs.str();

您应该使用 sprintf() 因为它是最快的。

不同函数的运行时间@ http://zverovich.net/2013/09/07/integer-to-string-conversion-in-cplusplus.html

引用文献:http://www.codeproject.com/Questions/166322/converting-number-from-long-double-to-string

需要更多帮助?让我知道

关于c++ - 以科学计数法将double转换为字符串比c++中的sprintf更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28260412/

相关文章:

c++ - 从后台线程错误修改自动布局引擎,来自 C++

c++ - 非事件窗口中的 QMenuBar 项目样式

arrays - 是否将数组转换为字符串 "special"以及其他类型?

c++ - 使用线程传递指针时出错

c++ - 在循环中创建的变量名?

javascript - JavaScript 中子字符串的行为存在明显问题

string - 字符串列表中的笛卡尔积

mysql - 我应该使用 double 类型在 mysql 数据库中保存坐标吗?

python - 在 C 中除以大(多)数(得到一个零,当我知道它不为零时)

c++ - 理解 double-to-int 转换中的 int-vs-trunc 关系