首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于数字分组 (123456789.99 => 123,456,789.99)解决方案

2012-02-14 
关于数字分组 (123456789.99 123,456,789.99)请问有没有效率高点的分组算法?[解决办法]很早的时候写过

关于数字分组 (123456789.99 => 123,456,789.99)
请问有没有效率高点的分组算法?

[解决办法]
很早的时候写过一个函数

C/C++ code
char * dcomma(double d, int n){    int   i, j,          flag = 0;    /* 整数部分 */    char *p, t[50];    static char s[50];    if( n > 8 ) n = 8;    else if( n < 0 ) n = 0;    if( n == 0 ) flag = 1;    s[sizeof(s) - 1] = 0;    sprintf(t, "%.*lf", n, d);    p = t + strlen(t) - 1;    for( i = sizeof(s) - 1, j = 0; p - t >= 0; p-- )    {        if( flag == 1 ) j++;        else if( *p == '.' ) flag = 1;        s[i--] = *p;        if( j == 3 && p - t && *(p-1) != '-' )        {            j = 0;            s[i--] = ',';        }    }    return(s + i + 1);} 

热点排行