怎么把数据格式化成含千位分隔符的字符串
如何把数据格式化成含千位分隔符的字符串?使用 QString::number(123456.789, f, 2)可格式化成:123456.
如何把数据格式化成含千位分隔符的字符串?
使用 QString::number(123456.789, 'f', 2);
可格式化成:"123456.78"
可是我希望有千位分隔符,即成为:123,456.78
不知道该怎么样写?
[最优解释]
qDebug() << QString("%L1").arg(12345.67, 0 ,'f',2);
qDebug() << QString("%L1").arg(12345.67, 0 ,'f',2);
[其他解释]估计的自己写个函数了,好像没有现成的。
[其他解释]这个可以自己算,网上可以搜到,我这有个自己调试好的C语言的,你转换下:
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);
自己根据情况改写一下就OK了
[其他解释]好东西,以前没发现,嘿嘿
[其他解释]这个上java课的时候老师布置过一个作业有做过
没有现成的,要你自己写,多查查QString的一些函数,自己写个出来
[其他解释]试过了,非常满意。
只是可惜 QString.toDouble() 时,不认 ....