使用 QString::number(123456.789, 'f', 2);
可格式化成:"123456.78"
可是我希望有千位分隔符,即成为:123,456.78
不知道该怎么样写?
void format_thousands_separator(long val,char *buf,int nLen) { long m, n = 0; char* p = &buf[nLen - 1]; *p ='\0'; //从后向前计算 do { m = val % 10; val = val / 10; *--p = '0' + (m < 0 ? -m : m); if (!val && m < 0) *--p = '-'; if (val && !(++n % 3)) *--p = ','; } while(val); //拷贝内存数据 char *firstdig = buf; do { *firstdig++ = *p++; } while (*p); *firstdig = '\0'; return; }
char buf[16]; memset(buf,0,16); format_thousands_separator(a,buf,16);
qDebug() << QString("%L1").arg(12345.67, 0 ,'f',2);
qDebug() << QString("%L1").arg(12345.67, 0 ,'f',2);