大小金额转换,语法没错,但不出结果。我初学,帮我看看,高分相送。
xqw 2003-11-14 05:43:21 CString UpNum(char StrInput)
{
switch(StrInput)
{
case '0':
return("零"); //UpNum = '零';
break;
case '1':
return("壹"); //UpNum = '壹';
break;
case '2':
return("贰"); //UpNum = '贰';
break;
case '3':
return("叁"); //UpNum = '叁';
break;
case '4':
return("肆"); //UpNum = '肆';
break;
case '5':
return("伍"); //UpNum = '伍';
break;
case '6':
return("陆"); //UpNum = '陆';
break;
case '7':
return("柒"); //UpNum = '柒';
break;
case '8':
return("捌"); //UpNum = '捌';
break;
case '9':
return("玖"); //UpNum = '玖';
break;
//default:
}
}
CString UpUnit(int IntInput, int IntFlag = 0)
{
if (IntFlag = 0)
switch(IntInput)
{
case 1:
return("元"); //UpUnit = '元';
break;
case 2:
return("拾"); //UpUnit = '拾';
break;
case 3:
return("佰"); //UpUnit = '佰';
break;
case 4:
return("仟"); //UpUnit = '仟';
break;
case 5:
return("万"); //UpUnit = '万';
break;
case 6:
return("拾"); //UpUnit = '拾';
break;
case 7:
return("佰"); //UpUnit = '佰';
break;
case 8:
return("仟"); //UpUnit = '仟';
break;
case 9:
return("亿"); //UpUnit = '亿';
break;
case 10:
return("拾"); //UpUnit = '拾';
break;
case 11:
return("佰"); //UpUnit = '佰';
break;
case 12:
return("仟"); //UpUnit = '仟';
break;
// default:
}
else
switch(IntInput)
{
case 1:
return("角"); //UpUnit = '角';
break;
case 2:
return("分"); //UpUnit = '分';
break;
//default:
}
}
CString GetUpper(CString& StrInput , int IntFlag = 0)
{
CString StrResult;
char StrSwap;
int i =1;
bool BlnOFlag =0;
if (IntFlag == 0) { //整数部分的处理:处理到仟亿位
while (i <= StrInput.GetLength())
{
StrSwap =(char)StrInput.GetAt(StrInput.GetLength()-i); //(StrInput.Right(i)).Left(1); //left(right(StrInput, i), 1);
if ((StrSwap == '0' && i == 5) || (StrSwap == '0' && i == 9))
{
StrResult=UpUnit(i, 0)+UpNum(StrSwap)+StrResult; //StrResult= strcat(strcat(UpUnit(i, 0),UpNum(StrSwap)),StrResult);
BlnOFlag = 1;
}
if (StrSwap == '0' && BlnOFlag == 0)
{
StrResult=UpNum(StrSwap)+StrResult; //StrResult= strcat(UpNum(StrSwap) , StrResult);
BlnOFlag = 1;
}
if (StrSwap != '0')
{
StrResult=UpNum(StrSwap)+UpUnit(i, 0)+StrResult; //StrResult=strcat(strcat(UpNum(StrSwap) , UpUnit(i, 0)) , StrResult);
BlnOFlag = 0;
}
//ElseIf StrSwap = 0 And BlnOFlag = True Then
i++;
}
return StrResult; }
else
while (i <= StrInput.GetLength()) //小数部分的处理
{
StrSwap = StrInput.GetAt(i-1); //(StrInput.Left(i)).Right(1); //right(left(StrInput, i), 1);
StrResult=StrResult+UpNum(StrSwap)+ UpUnit(i, 1); //StrResult=strcat(strcat(StrResult , UpNum(StrSwap)) , UpUnit(i, 1));
i++;
}
return StrResult;
}
void DlgSwitch::OnOK()
{
// TODO: Add extra validation here
DlgSwitch thedlgswitch;
CString StrInt;
CString StrDim;
int i;
UpdateData(TRUE);
if (thedlgswitch.m_moneyold.Find('.') > 0 )
{
i=thedlgswitch.m_moneyold.Find('.');
StrInt = thedlgswitch.m_moneyold.Mid(0, i);
StrDim = thedlgswitch.m_moneyold.Mid(i,thedlgswitch.m_moneyold.GetLength()-i);
}
else
StrInt = thedlgswitch.m_moneyold;
if (StrDim.IsEmpty())
thedlgswitch.m_moneynew=GetUpper(StrInt, 0);
else
thedlgswitch.m_moneynew=GetUpper(StrInt, 0) + GetUpper(StrDim, 1);
//thedlgswitch.m_moneynew=strcat(GetUpper(StrInt, 0) , GetUpper(StrDim, 1));
UpdateData(FALSE);
CDialog::OnOK();
Invalidate();
}