您的位置:首页 > 编程语言 > Qt开发

Qt将数字转为中文大写金额

2017-08-02 18:25 549 查看
在实现之前自己在网上找了相关资料, 没发现好的实现方法, 仿照一篇博客(http://blog.chinaunix.net/uid-30268735-id-5067078.html)写能实现将整数转为大写中文数字, 但是源代码写得有些复杂且没有实现小数的转换, 索性自己改写了一下.代码如下.

const QString XianJinShouFuEditForm::TranslateInteger(const double &Fnumber)
{
const int fnum=3; //小数位数, 最大为3
if(Fnumber<0.001)
return "零";
QString number = QString::number(qAbs(Fnumber),'f',fnum);
const QStringList cnintegetelement={"个","万","亿","兆"};
const QStringList cnmultipleelement={"仟","","拾","佰"};
const QStringList cnnumber={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
const QStringList decimal={"角","分","厘"};
QString cnintegerpart="";
//整数部分
int len=number.length()-fnum-1;
int i=0;
if(len==1){
if(number[i]!='0'){
cnintegerpart += cnnumber[number[i].toLatin1()-'0'];
cnintegerpart+="圆";
}
}else{
while(i4 && (len-i)%4==1){
cnintegerpart += cnintegetelement[(len-i)/4];
}
}
i++;
}
cnintegerpart+="圆";
}

//小数部分
QStringList numberList=number.trimmed().split(".");
QString rightNumber=numberList[1];
int j=0;
while(j

测试后如下图:

测试一: 整数













测试二: 小数














内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt