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

怎么把数据格式化成含千位分隔符的字符串

2012-12-15 
如何把数据格式化成含千位分隔符的字符串?使用 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);

引用:
使用 QString::number(123456.789, 'f', 2);
可格式化成:"123456.78"

可是我希望有千位分隔符,即成为:123,456.78

不知道该怎么样写?

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了
[其他解释]
引用:
qDebug() << QString("%L1").arg(12345.67, 0 ,'f',2);

引用:使用 QString::number(123456.789, 'f', 2);
可格式化成:"123456.78"

可是我希望有千位分隔符,即成为:123,456.78

不知道该怎么样写?
qDebug() << Q……

好东西,以前没发现,嘿嘿
[其他解释]
这个上java课的时候老师布置过一个作业有做过

没有现成的,要你自己写,多查查QString的一些函数,自己写个出来
[其他解释]
引用:
qDebug() << QString("%L1").arg(12345.67, 0 ,'f',2);

引用:使用 QString::number(123456.789, 'f', 2);
可格式化成:"123456.78"

可是我希望有千位分隔符,即成为:123,456.78

不知道该怎么样写?
qDebug() << Q……


试过了,非常满意。
只是可惜 QString.toDouble() 时,不认 ....

热点排行