1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 标准化金额:加小数点和逗号 / 加逗号 / 加小数点 / 纯数字

标准化金额:加小数点和逗号 / 加逗号 / 加小数点 / 纯数字

时间:2021-09-06 02:17:06

相关推荐

标准化金额:加小数点和逗号 / 加逗号 / 加小数点 / 纯数字

逗号部分代码部分参考:如何将数值,金额以逗号分隔

#include<iostream>#include<string>#include<cstdlib>using namespace std;int unify_money(string& strValue, int unifyType){if(strValue.size() < 1)return false;//转化为纯数字string strNum = "";for(int i = 0; i < (int)strValue.size(); i++){if(strValue[i] >= '0' && strValue[i] <= '9')strNum = strNum + strValue[i];}//判断正负号bool positive = true;if(strValue[0] == '-' || strValue[0] == '_' || strValue[0] == '一')positive = false;//进行统一string strUnify = "";if(unifyType == 0){//添加逗号和小数点if(strValue.size() < 3)return false;if(strNum.size() <= 2)return false;strUnify = '.' + strNum.substr(strNum.size() - 2);strNum = strNum.substr(0, strNum.size() - 2);int count = (strNum.length() - 1) / 3; int mod = strNum.size() % 3;if(mod == 0 && count != 0)mod = 3;for(int i = 1; i <= count; i++){strNum.insert(mod + 3*(count - i), ",");}strUnify = strNum + strUnify;strValue = strUnify;if(positive == false)strValue = '-' + strValue;}else if(unifyType == 1){//添加小数点if(strValue.size() < 3)return false;if(strNum.size() < 2)return false;strUnify = strNum.substr(0, strNum.size() - 2) + '.' + strNum.substr(strNum.size() - 2);strValue = strUnify;if(positive == false)strValue = '-' + strValue;}else if(unifyType == 2){//纯数字strValue = strNum;if(positive == false)strValue = '-' + strValue;}else if(unifyType == 3){//添加逗号int count = (strNum.length() - 1) / 3; int mod = strNum.size() % 3;if(mod == 0 && count != 0)mod = 3;for(int i = 1; i <= count; i++){strNum.insert(mod + 3*(count - i), ",");}strUnify = strNum + strUnify;strValue = strUnify;if(positive == false)strValue = '-' + strValue;}}int main(){for(int i = 0; ; i++){string inputUnifyType = "";cout << "unifyType = ";cin >> inputUnifyType;cin.sync();cout << endl;if(inputUnifyType == "break")break;int unifyType = stoi(inputUnifyType);string inputStr = "";for(int j = 0; ; j++){cout << "inputStr = ";cin >> inputStr;cin.sync();cout << endl;if(inputStr == "break")break;unify_money(inputStr, unifyType);cout << "unifyStr = " << inputStr <<endl;cout << endl;}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。