vb中如何将整数数字转化为相应的中文大写

vb中如何将整数数字转化为相应的中文大写,第1张

这个是我原来收集的一个 财务上的数字转中文大写··你改下就好了··

Function daxie(money As String) As String '

Dim x As String, y As String

Const zimu = "sbqwsbqysbqwsbq" '定义位置代码

Const letter = "0123456789sbqwyjzf" '定义数字及汉字缩写

Const upcase = "零壹贰叁肆伍陆柒捌玖拾佰仟万亿圆角整分" '定义大写汉字

Dim temp As String

temp = money

If InStr(temp, "") > 0 Then temp = Left(temp, InStr(temp, "") - 1)

If Len(temp) > 16 Then MsgBox "数目太大,无法换算!请输入一亿亿以下的数字", 64, "错误提示": Exit Function '只能转换一亿亿元以下数目的货币!

x = Format(money, "000") '格式化货币

y = ""

For i = 1 To Len(x) - 3

y = y & Mid(x, i, 1) & Mid(zimu, Len(x) - 2 - i, 1)

Next

If Right(x, 3) = "00" Then

y = y & "z" '元整

Else

y = y & Left(Right(x, 2), 1) & "j" & Right(x, 1) & "f" '元角分

End If

y = Replace(y, "0q", "0") '避免零千(如:40200肆万零千零贰佰)

y = Replace(y, "0b", "0") '避免零百(如:41000肆万壹千零佰)

y = Replace(y, "0s", "0") '避免零十(如:204贰佰零拾零肆)

y = Replace(y, "0j", "0") '避免零角

y = Replace(y, "0f", "整")

Do While y <> Replace(y, "00", "0")

y = Replace(y, "00", "0") '避免双零(如:1004壹仟零零肆)

Loop

y = Replace(y, "0y", "y") '避免零亿(如:210亿 贰佰壹十零亿)

y = Replace(y, "0w", "w") '避免零万(如:210万 贰佰壹十零万)

y = IIf(Len(x) = 5 And Left(y, 1) = "1", Right(y, Len(y) - 1), y) '避免壹十(如:14壹拾肆;10壹拾)

y = IIf(Len(x) = 4, Replace(y, "0", ""), Replace(y, "0", "")) '避免零元(如:2000贰拾零圆;012零圆壹角贰分)

For i = 1 To 19

y = Replace(y, Mid(letter, i, 1), Mid(upcase, i, 1)) '大写汉字

Next

daxie = y

End Function

Private Sub Command1_Click()

Text2Text = daxie(Val(Text1Text)) ' (如return: 贰玖仟叁佰贰拾贰圆叁角贰分

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Command3_Click()

Text1Text = ""

Text2Text = ""

End Sub

很多人在时候excel工作表的时候需要填写大写的金额数据,如果利用输入法打大写的话比较麻烦,那我们应该怎么做呢,如果在excel中输入数字能够自动转换文大写数字就好了,那么今天我们就来学习一下在excel中输入数字自动转换为大写数字的方法。

1、选中所有需要使用大写数字的单元格,单击鼠标右键,在d出的快捷菜单中执行“设置单元格格式”命令;

2、在d出的“单元格格式”对话框中选择“数字”选项卡,在“分类”列表框中选择“特殊”选项,然后在右侧的“类别”列表框中选中“中文大写数字”;

3、单击“确定”按钮后,当用户在设置好格式的单元格中输入如“12345”的小写中文数字并按下“Enter”键结束输入后,Excel会自动将其转换为“壹万贰仟叁佰肆拾伍”。

以上就是我们在excel中输入数字自动转换为大写数字的方法, *** 作起来非常简单,而且设置以后还可以提升我们的工作效率。

方法一:

1、在excel单元格中输入“556677”并选中该单元格。

2、点击鼠标右键,选择“设置单元格格式”。

3、在格式设置对话框中选择“特殊”中的“人民币大写”,点击确定。

4、可以看到选中的单元格内的数字变成大写金额了。

方法二:

1、在B1单元格中输入公式:

=SUBSTITUTE(SUBSTITUTE(IF(A1>-05%,,"负")&TEXT(INT(ABS(A1)+05%),

"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(FIXED(A1),2),"[dbnum2]0角0

分;;"&IF(ABS(A1)>1%,"整",)),"零角",IF(ABS(A1)<1,,"零")),"零分","整")。

2、点击回车即可得出函数计算结果,数字已经被转变为大写金额了。

LZ题目都没说清,10是怎么表示?十?一〇?

还有五六– 三 四=根本不合规范,中间的减号还是全角的

基本空格都是有两个。。。。。

足见LZ诚心不足啊

还有除不尽怎么办?

LZ这种课程报告还是问清老师,自己想办法做吧

我其实很忙的

#include<stdioh>

#include<stringh>

int change(char data[])

{

if(!strncmp(data,"〇",2))

{

return 0;

}

if(!strncmp(data,"一",2))

{

return 1;

}

if(!strncmp(data,"二",2))

{

return 2;

}

if(!strncmp(data,"三",2))

{

return 3;

}

if(!strncmp(data,"四",2))

{

return 4;

}

if(!strncmp(data,"五",2))

{

return 5;

}

if(!strncmp(data,"六",2))

{

return 6;

}

if(!strncmp(data,"七",2))

{

return 7;

}

if(!strncmp(data,"八",2))

{

return 8;

}

if(!strncmp(data,"九",2))

{

return 9;

}

}

int calculate(int A,int B,char c)

{

switch(c)

{

case '+':return A+B;

case '-':return A-B;

case '':return AB;

case '/':return A/B;

}

}

void change2(int cal,char ans[])

{

int len[20]={0},i=0;

char data[15][5]={"〇","一","二","三","四","五","六","七","八","九"};

while(cal>0)

{

len[i]=cal%10;

cal/=10;

i++;

}

for(i--;i>=0;i--)

{

strcat(ans,data[len[i]]);

}

return;

}

int main()

{

int n=0,i=0,sum=0,A=0,B=0,j=0;

char ans[50]={0};

char temp[200]={0},cha[10]={0};

while(gets(temp)!=NULL)

{

A=0;

B=0;

ans[0]=0;

A+=change(temp);

for(i=2;temp[i]!=' ';i++)

{

A=10;

A+=change(temp+i);

i++;

}

while(temp[i]==' ')

{

i++;

}

j=i;

i++;

while(temp[i]==' ')

{

i++;

}

B+=change(temp+i);

for(i+=2;temp[i]!=' ';i++)

{

B=10;

B+=change(temp+i);

i++;

}

if(A==0&&B==0)

{

break;

}

A=calculate(A,B,temp[j]);

change2(A,ans);

puts(ans);

}

return 0;

}

先生,这个代码在Linux下用gcc编译通过了。

#include <stdioh>

#include <stdlibh>

#include <wcharh>

#include <localeh>

wchar_t cstrs[10];

wchar_t bit[10];

int main()

{

cstrs[0]=0x96F6;cstrs[1]=0x58F9;cstrs[2]=0x8D30;

cstrs[3]=0x53C4;cstrs[4]=0x8086;cstrs[5]=0x4F0D;

cstrs[6]=0x9678;cstrs[7]=0x67D2;cstrs[8]=0x634C;

cstrs[9]=0x7396;

bit[0]=0x5706;bit[1]=0x62FE;bit[2]=0x4F70;

bit[3]=0x4EDF;bit[4]=0x842C;bit[5]=0x62FE;

bit[6]=0x4F70;bit[7]=0x4EDF;bit[8]=0x5104;

bit[9]=0x62FE;bit[10]=0x4F70;bit[11]=0x4EDF;

bit[12]=0x842C;

setlocale(LC_ALL, "");

double innum;

int k=0; int tmp=1;

scanf("%lf", &innum);

while(tmp<innum){

k+=1; tmp=10;

}

if(tmp>innum){k--; tmp=tmp/10;}

if(k<0){k=0, tmp=1;}

int e, ee, t=0;

e=(int)innum;

while(e>=1){

ee = (int)e/tmp;

if(ee!=0){

if(t){

printf("%lc",cstrs[0]);

t=0;

}

printf("%lc", cstrs[ee]);

printf("%lc", bit[k]);

} else {

t=1;

if(k==8 || k==4)printf("%lc",bit[k]);

}

k--; e=e%tmp; tmp=tmp/10;

}

long et;

et=(long)(innum10); printf("%lc%lc",cstrs[et%10], 0x89D2);

et=(long)(innum100); printf("%lc%lc",cstrs[et%10], 0x5206);

puts("");

return 0;

}

例如:

输入:

25600002322

输出:

贰亿伍仟陆佰万零贰拾叄圆贰角贰分

工具:2010版excel

1、先打开excel,以下图为例,需要将A1单元格中的数字转化成中文大写金额格式并在B1单元格中显示结果;

2、选中B1单元格并输入公式“=SUBSTITUTE(SUBSTITUTE(TEXT(INT(A1),"[DBNum2][$-804]G/通用格式元"&IF(INT(A1)=A1,"整",""))&TEXT(MID(A1,FIND("",A1&"0")+1,1),"[DBNum2][$-804]G/通用格式角")&TEXT(MID(A1,FIND("",A1&"0")+2,1),"[DBNum2][$-804]G/通用格式分"),"零角","零"),"零分","")”;

3、按下回车键后就可以在B1单元格中得出结果了。

以上就是关于vb中如何将整数数字转化为相应的中文大写全部的内容,包括:vb中如何将整数数字转化为相应的中文大写、在excel中输入数字自动转换为大写数字的方法、excel数字金额用什么函数改为大写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10212288.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存