我需要一个函数,它以格式为'xx' xxx' xxx.xxxx'来获取double值的字符串。
该功能必须快速运作。
我怎么写呢?
答案 0 :(得分:2)
要将double转换为字符串,请查看
atof http://www.cplusplus.com/reference/cstdlib/atof/
或
to_string http://www.cplusplus.com/reference/string/to_string/
一旦你有了你的字符串,有几个选项可供选择,但所有这些选项都会找到小数点并插入'在三个一组之后,或者通过复制原始字符串来构造一个新字符串,还要添加'复制每组三个。
假设你使用的是std :: string,这样的东西应该可以正常工作:
const int GROUP_LENGTH = 3;
auto stringLength = s.length();
auto insertPosition = s.find(".");
if (insertPosition == string::npos) { // no decimal part
insertPosition = stringLength;
}
while (insertPosition > 0) {
insertPosition -= GROUP_LENGTH;
s.insert(insertPosition, '\'');
}
另外,不要介意知识分子精英。这些人中有许多人天生就做倒立。