数字字符串转千分位数字字符串

//将数字字符串转为千分位格式
inline string number_to_currency(string str, bool bDot = true)
{
    string newStr = "";
    int count = 0;
    if (str.find(".") == string::npos) //
    {
        for (int i = str.length() - 1; i >= 0; i--)
        {
            string tmp = "a";
            tmp[0] = str.at(i);
            if (count % 3 == 0 && count != 0)
            {
                newStr = tmp + "," + newStr;
            }
            else
            {
                newStr = tmp + newStr;
            }
            count++;
        }
        if (bDot)
            newStr = newStr + ".00"; //自动补小数点后两位
    }
    else
    {
        for (int i = str.find(".") - 1; i >= 0; i--)
        {
            string tmp = "a";
            tmp[0] = str.at(i);
            if (count % 3 == 0 && count != 0)
            {
                newStr = tmp + "," + newStr; //碰到3的倍数则加上","号
            }
            else
            {
                newStr = tmp + newStr; //逐个字符相接起来
            }
            count++;
        }
        newStr = newStr + (str + "00").substr((str + "00").find("."), 3);
    }
    return newStr;
}



 

posted @ 2017-10-11 18:39  Mr.R123  阅读(896)  评论(0编辑  收藏  举报