如题,如何比c++中的sprintf
更快地将double转为科学计数法的string?
我有很多(大约 1e10)双数,必须将所有数字转换为这种格式的字符串:±*.*********E±***,它有 10 个有效数字。
但是sprintf
和stringstream
太慢了,有没有更快的方法?
谢谢。
最佳答案
使用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/