如何分组数字?

时间:2014-09-07 06:02:11

标签: c++ string

我需要一个函数,它以格式为'xx' xxx' xxx.xxxx'来获取double值的字符串。

该功能必须快速运作。

我怎么写呢?

1 个答案:

答案 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, '\'');
}

另外,不要介意知识分子精英。这些人中有许多人天生就做倒立。