人民币大小写转换函数
人民币大写转换自定义函数

人民币大写转换自定义函数本人觉得比较符合银行支票等票据填写要求的人民币大写转换自定义函数,共2个,区别是,后一个自定义函数元后面总有零。
Function RMBDX(M)Dim a As VariantRMBDX = Replace(Replace(Replace(Join(Application.Text(Split(Format(M, ' 0. 0 0;负 0. 0 0;')), ['[DBnum2]'&{0,'','元0角;;元零','0分;;整'}]), a), '零元零', a), '零元', a), '零整', '整')End FunctionFunction dx(M)Dim a As Variantdx = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Repl ace(Replace(Application.Text(Format(M, '.012034;;0'), '[=]g;[DBnum2]'), '.', '元零'), '叁肆', '分'), '壹贰', '角'), '零分', '整'), '零角', a), '零元零', a), '零元', a), '零整', '整'), '-', '负')End Function【使用方法】:在打开的工作簿中,按Alt F11,进入VBE界面,按Alt i m插入一个模块,将自定义函数代码粘贴(或输入)到其中,再次按Alt F11返回工作表单元格中,输入自定义函数名称及参数,即可返回大写。
VB人民币大小写转换涵数

VB人民币大小写转换涵数'|人民币大小写转换涵数Public Function RmbStr(ByVal sNum As String, _ Optional BITs As String = ",拾,佰,仟", _Optional UNITs As String = ",万,亿,兆,万兆", _Optional ByVal Yuan As String = "元", _Optional ByVal Jiao As String = "角", _Optional ByVal Fen As String = "分") As StringsNum = sNumIf Val(sNum) < 0 ThenRmbStr = "零" & YuanExit FunctionEnd IfDim sIntD, sDecD As StringDim I, iCount, j, iLength As IntegerDim lStartPos As LongDim sBIT() As String, sUNIT() As String, sCents(2) As StringsBIT = VBA.Split(BITs, ",")sUNIT = VBA.Split(UNITs, ",")sCents(0) = FensCents(1) = JiaoDim temp As StringIf InStr(sNum, ".") > 0 Thentemp = Left(sNum, InStr(sNum, ".") - 1)Elsetemp = sNumEnd IfiCount = IIf(Len(temp) Mod 4, Len(Trim(temp)) \ 4 + 1, Len(Trim(temp)) \ 4)lStartPos = 1For I = iCount To 1 Step -1If I = iCount And Len(Trim(temp)) Mod 4 <> 0 TheniLength = Len(Trim(temp)) Mod 4ElseiLength = 4End IfsIntD = Mid(Trim(temp), lStartPos, iLength)For j = 1 To Len(Trim(sIntD))If Val(Mid(sIntD, j, 1)) <> 0 ThenRmbStr = RmbStr & Choose(Val(Mid(sIntD, j, 1)), _"壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖") & _sBIT(Len(Trim(sIntD)) - j)ElseIf Val(Mid(sIntD, j + 1, 1)) <> 0 ThenRmbStr = RmbStr & "零"End IfEnd IfNext jlStartPos = lStartPos + iLengthIf I < iCount ThenIf (Val(Mid(sIntD, Len(Trim(sIntD)), 1)) <> 0 Or _Val(Mid(sIntD, Len(Trim(sIntD)) - 1, 1)) <> 0 Or _Val(Mid(sIntD, Len(Trim(sIntD)) - 2, 1)) Or _Val(Mid(sIntD, Len(Trim(sIntD)) - 3, 1)) <> 0) ThenIf I < UBound(sUNIT) + 1 ThenRmbStr = RmbStr & sUNIT(I - 1)ElseRmbStr = RmbStr & sUNIT(I - 1)End IfEnd IfElseIf I < UBound(sUNIT) + 1 ThenRmbStr = RmbStr & sUNIT(I - 1)End IfEnd IfNextIf Len(Trim(RmbStr)) > 0 ThenRmbStr = RmbStr & YuanEnd If'小数If InStr(1, sNum, ".") <> 0 ThensDecD = Right(sNum, Len(sNum) - InStr(1, sNum, ".")) For I = 1 To Len(Trim(sDecD))If Val(Mid(Trim(sDecD), I, 1)) <> 0 ThenRmbStr = RmbStr & Choose(Val(Mid(Trim(sDecD), I, 1)), _ "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖")RmbStr = RmbStr & sCents(2 - I)If I >= 2 Then Exit ForElseIf Len(Trim(RmbStr)) > 0 Then RmbStr = RmbStr & "零"End IfNext IRmbStr = RmbStr ' & "正"ElseRmbStr = RmbStr & "整" End IfEnd Function。
人民币大小写转换Excel公式

人民币大小写转换Excel公式以下假设你在A1单元格中输入金额数字,在其它单元格输入以下公式就可以了公式1=SUBSTITUTE(SUBSTITUTE(IF(A1<0,"负","")&TEXT(TRUNC(ABS(ROUND(A1,2))),"[DBNum2]")&"元"&IF(ISERR(FIND(".",ROUND(A1,2))),"",TEXT(RIGHT(TRUNC(ROUND(A1,2)*10)),"[DBN um2]"))&IF(ISERR(FIND(".0",TEXT(A1,"0.00"))),"角","")&IF(LEFT(RIGHT(ROUND(A1,2),3))=".",TEXT(RIGHT(ROUND(A1,2)),"[DBNum2]")&"分",IF(ROUND(A1,2)=0,"","整")),"零元零",""),"零元","")公式2=IF((A1-INT(A1))=0,TEXT(A1,"[DBNUM2]")&"元整",IF(INT(A1*10)-A1*10=0,TEXT(INT(A1),"[DBNUM2]")&"元"&TEXT((INT(A1*10)-INT(A1)*10),"[DBNUM2]")&"角整",TEXT(INT(A1),"[DBNUM2]")&"元"&IF(INT(A1*10)-INT(A1)*10=0,"零",TEXT(INT(A1*10)-INT(A1)*10,"[DBNUM2]")&"角")&TEXT(RIGHT(A1,1),"[DBNUM2]")&"分"))公式3=IF(ABS(A1)<0.005,"",IF(A1<0,"负",)&IF(INT(ABS(A1)),TEXT(INT(ABS(A1)),"[dbnum2]")&"元",)&IF(INT(ABS(A1)*10)-INT(ABS(A1))*10,TEXT(INT(ABS(A1)*10)-INT(ABS(A1))*10,"[db num2]")&"角",IF(INT(ABS(A1))=ABS(A1),,IF(ABS(A1)<0.1,,"零")))&IF(ROUND(ABS(A1)*100-INT(ABS(A1)*10)*10,),TEXT(ROUND(ABS(A1)*100-INT(A BS(A1)*10)*10,),"[dbnum2]")&"分","整"))以上公式包含在附件的excel表格中。
excel自动生成大写元整的函数

excel自动生成大写元整的函数
Excel中有一个函数可以将数字转换成大写元整的形式,即人民币的大写形式。
这个函数叫做“人民币大写”函数,其语法为:=人民币大写(金额)。
其中,“金额”可以是单元格引用或数字。
此函数可以用于财务报表、发票等需要将数字转换成大写元整形式的场合。
使用该函数可以节省手动输入大写元整的时间,同时也避免了误差。
举个例子:如果要将金额1000转换成大写元整的形式,可以在任意单元格输入“=人民币大写(1000)”或者“=人民币大写(A1)”(假设A1单元格里是1000),然后按下回车键即可在当前单元格中显示“壹仟元整”。
除了基本的大写元整形式外,该函数还可以自定义前缀、后缀,以及小数部分的转换方式。
具体语法如下:
=人民币大写(金额, [整数前缀], [整数后缀], [小数前缀], [小数后缀], [小数转换方式])
其中,“整数前缀”、“整数后缀”、“小数前缀”、“小数后缀”可以是任意文字,用于自定义格式。
而“小数转换方式”则可以指定小数部分的转换方式,可选值为0、1、2、3,分别表示四舍五入、向上取整、向下取整、忽略小数部分。
例如,如果要将金额1000转换成“人民币壹仟圆整”的形式,可以输入“=人民币大写(1000, '人民币', '圆整')”,或者“=人民币大写(A1, '人民币', '圆整')”(假设A1单元格里是1000)。
总之,通过这个函数,我们可以非常方便地将数字转换成大写元整的形式,提高工作效率,减少错误率。
人民币大写转换函数

人民币大写转换函数Function N2RMB(M)y = Int(Round(100 * Abs(M)) / 100)j = Round(100 * Abs(M) + 0.00001) - y * 100f = (j / 10 - Int(j / 10)) * 10A = IIf(y < 1, "", Application.Text(y, "[DBNum2]") & "元")b = IIf(j > 9.5, Application.Text(Int(j / 10), "[DBNum2]") & "角", IIf(y < 1, "", IIf(f > 1, "零", "")))c = IIf(f < 1, "整", Application.Text(Round(f, 0), "[DBNum2]") & "分")N2RMB = IIf(Abs(M) < 0.005, "", IIf(M < 0, "负" & A & b & c, A & b & c))End Function另外一个函数:Function dx(M) '一条语句163个字符dx = Replace(Replace(Replace(Join(Application.Text(Split(Format(M, "0. 0 0;负 0. 0 0; ")), ["[DBnum2]"&{0,"","元0角;;元零","0分;;整"}]),a), "零元零", a), "零元", a), "零整", "整")End Function代码解析:代码中使用了Replace()、Join()、Split()、Format()等4个VBA 函数,以及1个工作表函数T ext()。
excel数字转大写金额函数

excel数字转大写金额函数
Excel数字转大写金额函数
在实际工作中,我们经常会用到把数字表示的金额转换成大写汉字,在Excel中也可以实现这样的转换。
本文介绍利用Excel函数实现转换金额数字为大写汉字的方法。
1、定义函数
在Excel中,要实现将数字转换为大写汉字,可以使用函数:DOLLAR(货币文本)。
其中,具体使用规则如下:
DOLLAR(num,[position])
参数说明:
Num为必需参数,表示要转换的金额数字。
Position为可选参数,表示以几位小数点货币格式显示,默认为2位小数;
2、使用函数
例如,在Excel中,我们想将数字100000转换为大写汉字,通常应该如何操作呢?
首先,我们在Excel中输入数字100000,然后在它旁边的单元格输入函数DOLLAR,最后,在函数后输入参数100000,按回车即可。
此时,可以看出,Excel已经将100000转换为大写汉字“壹拾万元整”了。
- 1 -。
excel表格中数字自动变成人民币大写的函数

标题:excel表格中数字自动变成人民币大写的函数在许多日常工作中,我们经常会用到Microsoft Excel这一办公软件来处理数据和表格。
在处理涉及人民币金额的时候,通常需要将数字自动转换成人民币大写的形式,这不仅方便了数据的阅读和理解,也符合财务报表的要求。
下面介绍一种在Excel中实现这一功能的方法,希望对大家有所帮助。
1. 准备工作在使用Excel表格处理人民币金额时,首先需要保证表格中含有人民币金额的数字列。
假设我们要将A列的数字自动转换成人民币大写,我们可以将转换后的结果显示在B列。
2. 编写函数在B列的第一个单元格中,输入以下函数来实现将数字自动转换成人民币大写的功能:=人民币(A1)其中,A1代表了要转换的人民币金额所在的单元格,人民币()为自定义的转换函数名称,可以根据个人喜好进行修改。
3. 自定义函数在Excel中,默认并没有内置的函数来实现将数字转换成人民币大写的功能,因此需要通过自定义宏来实现。
以下是一个示例的自定义函数,供大家参考:Function 人民币(ByVal MyNumber) As StringDim Dollars, Cents, TempDim DecimalPlace, CountReDim place(9) As Stringplace(2) = " Thousand "place(3) = " Million "place(4) = " Billion "place(5) = " Trillion "' String representation of amount.MyNumber = Trim(Str(MyNumber))' Position of decimal place 0 if none.DecimalPlace = InStr(MyNumber, ".")' Convert cents and set MyNumber to dollar amount.If DecimalPlace > 0 ThenCents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) _ "00", 2))MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))End IfCount = 1Do While MyNumber <> ""Temp = GetHundreds(Right(MyNumber, 3))If Temp <> "" Then Dollars = Temp place(Count) Dollars If Len(MyNumber) > 3 ThenMyNumber = Left(MyNumber, Len(MyNumber) - 3)ElseMyNumber = ""End IfCount = Count + 1LoopSelect Case DollarsCase ""Dollars = "No Dollars"Case "One"Dollars = "One Dollar"Case ElseDollars = Dollars " 元"End SelectSelect Case CentsCase ""Cents = " and No Cents"Case "One"Cents = " and One Cent"Case ElseCents = " and " Cents " 分"End Select人民币 = Dollars CentsEnd FunctionFunction GetHundreds(ByVal MyNumber)Dim Result As StringIf Val(MyNumber) = 0 Then Exit FunctionMyNumber = Right("000" MyNumber, 3)If Mid(MyNumber, 1, 1) <> "0" ThenResult = GetDigit(Mid(MyNumber, 1, 1)) " 百"End IfIf Mid(MyNumber, 2, 1) <> "0" ThenResult = Result GetDigit(Mid(MyNumber, 2, 1)) " 十"ElseIf Mid(MyNumber, 1, 1) <> "0" And Mid(MyNumber, 2, 1) = "0" ThenResult = Result " 零"End IfEnd IfIf Mid(MyNumber, 3, 1) <> "0" ThenResult = Result GetDigit(Mid(MyNumber, 3, 1))End IfGetHundreds = ResultEnd FunctionFunction GetTens(TensText)Dim Result As StringResult = "" ' Null out the temporary function value. If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19... Select Case Val(TensText)Case 10: Result = "十"Case 11: Result = "十一"Case 12: Result = "十二"Case 13: Result = "十三"Case 14: Result = "十四"Case 15: Result = "十五"Case 16: Result = "十六"Case 17: Result = "十七"Case 18: Result = "十八"Case 19: Result = "十九"Case ElseEnd SelectElse ' If value between 20-99...Select Case Val(Left(TensText, 1))Case 2: Result = "二十 "Case 3: Result = "三十 "Case 4: Result = "四十 "Case 5: Result = "五十 "Case 6: Result = "六十 "Case 7: Result = "七十 "Case 8: Result = "八十 "Case 9: Result = "九十 "Case ElseEnd SelectResult = Result GetDigit _(Right(TensText, 1)) ' Retrieve ones place. End IfGetTens = ResultEnd FunctionFunction GetDigit(Digit)Select Case Val(Digit)Case 1: GetDigit = "一"Case 2: GetDigit = "二"Case 3: GetDigit = "三"Case 4: GetDigit = "四"Case 5: GetDigit = "五"Case 6: GetDigit = "六"Case 7: GetDigit = "七"Case 8: GetDigit = "八"Case 9: GetDigit = "九"Case Else: GetDigit = ""End SelectEnd Function4. 使用自定义函数在完成自定义函数的编写后,我们可以在B列的第一个单元格中输入=人民币(A1),然后按下Enter键,即可看到A1单元格中的人民币金额被自动转换成人民币大写的形式,并显示在B1单元格中。
excel自动生成大写元整的函数

excel自动生成大写元整的函数1、背景介绍在日常工作中,我们经常会遇到需要将数字转化为大写汉字的情况,尤其是在财务报表等涉及到人民币的地方。
手动将数字转化为大写汉字费时费力,因此我们可以通过Excel自动生成大写元整的函数来简化工作流程,提高工作效率。
2、Excel生成大写元整的函数Excel生成大写元整的函数是将数字转换为大写汉字的函数,主要用于财务报表、发票等涉及人民币的场合。
以下是Excel自动生成大写元整的函数:=UPPER(IFERROR(IF(A1<0,"负","")&INDEX({"","壹","贰","叁","肆","伍","陆","柒","捌","玖"},INT(MID(TEXT(ABS(A1),"0,00"),LEN(TEXT(ABS(A1),"0,00"))-i+1,1))+1)&IF(i=3,"佰",IF(i=4,"仟",IF(i=5,"万",IF(i=6,"拾万",IF(i=7,"百万",IF(i=8,"千万",IF(i=9,"亿",IF(i=10,"拾亿",IF(i=11,"百亿",IF(i=12,"千亿","")))))))))),""))3、运用场景Excel生成大写元整的函数可以应用于财务报表、发票等需要将数字转化为大写汉字的场合。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12056.56壹万贰仟零伍拾陆元伍角陆分壹万贰仟零伍拾陆元伍角陆分壹万贰仟零伍拾陆元伍角陆分壹万贰仟零伍拾陆元伍角陆分壹万贰仟零伍拾陆元伍角陆分近来转了转几个EXCEL相关论坛,发现有部分网友在寻求数字金额转换为人民币大写的方法。
出于好奇,我在网上搜索了一番,什么VBA、加载宏,公式函数各式方法争相亮相,应有尽有。
但我的习惯是,只要能用公式解决的问题,坚决不使用VBA。
所以我就特别地关注使用公式来生成的方法,结果是用公式的方法可谓是更加地灿烂缤纷,使人眼花缭乱。
通过分析我收集到的二十几个公式,发现比较牛,适合我口味的公式有三个,在此我将其列出。
公式一:SUBSTITUTE(SUBSTITUTE(IF(A1<0,"负","")&TEXT(TRUNC(ABS(ROUND(A1,2))),"[DBNum2]")&"元"&IF(ISERR(FIND(".",ROUND(A1,2))),"",TEXT(RIGHT(TRUNC(ROU ND(A1,2)*10)),"[DBNum2]"))&IF(ISERR(FIND(".0",TEXT(A1,"0. 00"))),"角","")&IF(LEFT(RIGHT(ROUND(A1,2),3))=".",TEXT(RIGHT(ROUND( A1,2)),"[DBNum2]")&"分",IF(ROUND(A1,2)=0,"","整")),"零元零",""),"零元","")公式二:CONCATENATE(IF(A1<0,"负",""),TEXT(IF(TRUNC(A1)=0,"",TRUNC(ABS(A1))),"[DBNum2]"), IF(INT(TRUNC(A1))=0,"","元"),TEXT(IF(OR(ABS(A1)<0.1,TRUNC(A1)=A1),"",RIGHT(TRUNC(A1 *10),1)),"[DBNum2]"),IF(RIGHT(TRUNC(A1*10),1)="0","","角"),TEXT(IF(RIGHT(TRUNC(A1*100),1)="0","",RIGHT(TRUNC(A1*1 00),1)),"[DBNum2]"),IF(RIGHT(TRUNC(A1*100),1)="0","","分"))公式三:IF(ROUND(A1,2)=0,"",IF(ROUND(ABS(A1),2)>=1,TEXT(INT(ROUND (ABS(A1),2)),"[DBNum2]")&"元","")&IF(RIGHT(TEXT(A1,".00"),2)*1=0,"整",IF(RIGHT(TEXT(A1,".00"),4)*1>=1,IF(RIGHT(TEXT(A1,".00") ,2)*1>9,"","零"),IF(ROUND(ABS(A1),2)>=1,"零",""))&IF(RIGHT(TEXT(A1,".00"),2)*1>9,TEXT(LEFT(RIGHT(TEX T(A1,".00"),2)),"[DBNum2]")&"角","")&IF(RIGHT(TEXT(A1,".00"))*1>0,TEXT(RIGHT(TEXT(A1,".0 0")),"[DBNum2]")&"分","整"))) 我用不同的数值对这三个公式进行了一番测试,都达到了我的要求,至少到目前为止还没有发现上述公式存在着什么错误。
上述公式对负数的处理采取了不同的方法。
公式一和公式二对负数是在其前部加上一个“负”字,而公式三则是按正数进行处理。
我比较推崇公式三的方式,不是还有条件格式可以设置吗?若是负数就用条件格式来变为红色。
我不准备在此对上述公式进行分析解说。
撰写本文的目的是我也想自己来“组装”一个所谓的通用公式。
我只所以说是“组装”而不是叫什么“开发”或者是“拼凑”,是因为EXCEL的函数现成地摆在了那里,使用时就是为了达到某种目的,按照其固有的规则,将其进行有机的组合,可谓“组装”。
但是在这个过程中,也是要开动脑筋的,并非是随随便便“拼凑”就能成功的。
本文的目的就是想将我在“组装”公式时的思路展现出来。
若用程序设计语言(比如用C语言)来写一个人民币数字金额转大写金额会怎样考虑呢?我想每一位数字都要考虑到。
但在EXCEL中,单元格格式中有一个“特殊”格式,里面就有将小写数字转换为大写数字的格式。
但要注意的是,这里转换的是数字而不是金额。
所以转换出来后并不存在“元”、“角”、“分”、“整”等在大写金额中出现的字。
但是,“元”只出现在整数部分的后面,而小数部分只有角分两位。
这样只要利用EXCEL的“特殊”格式将数据分为整数部分、角位和分位三个部分来处理就行了。
处理的顺序是先整数,再角位、再分位。
由于要分三个部分分别处理,然后根据情况分别与“元”,“角”,“分”及“整”相连接。
连接的方式可以使用CONCATENATE()函数,如公式二,也可以使用连接符&。
而用&来连接,公式结构似乎会相对简单清晰一些,所以我选择了用&来连接。
虽然对问题进行了分解,但需要考虑的细节相当多。
若单元格为0或者空,输出空,避免出现“零”、“零元”等字样。
对非数字字符不进行处理,使用EXCEL自身的错误提示。
对负数按正数处理,再用条件格式将其转换为红色,不拟采用“负XXXXXX”的形式。
整数加“元”,若是纯整数,就只处理整数且加“整”,不再处理小数部分。
若是纯小数,放在小数部分处理,不单独列出处理。
角为0且分不为0,应输出“零”,只有角的就加“整” 如果有尾数,即有3位以上小数(这种情况也许很少发生,但作为一个“通用”公式,却不能不考虑这种情况)。
则有两种处理方式,一是截尾,另一则是四舍五入。
由于两种方式的排它性。
决定做两个公式。
如果数值小于分,截尾公式输出空,而四舍五入公式则要考虑舍入问题。
若有舍入输出分,没有则输出空。
根据这个思路,我“组装”了下面两个公式。
公式四:IF(A1=0,"",IF(ABS(A1)<0.995,"",TEXT(INT(ROUND(ABS(A1),2)) ,"[DBNum2]")&"元")&IF(RIGHT(TEXT(A1,".00"),2)*1=0,IF(ABS(A1)<0.005,"","整"),TEXT(IF(ABS(A1)<0.095,"",LEFT(RIGHT(TEXT(A1,".00"),2)) ),"[dbnum2]")&IF(LEFT(RIGHT(TEXT(A1,".00"),2))*1=0,"","角")&IF(RIGHT(TEXT(A1,".00"))*1=0,"整",TEXT(RIGHT(TEXT(A1,".00")),"[dbnum2]")&"分")))公式五:IF(A1=0,"",IF(ABS(A1)<1,"",TEXT(TRUNC(ABS(A1)),"[DBNum2]" )&"元")&IF(RIGHT(TRUNC(A1*100),2)*1=0,IF(ABS(A1)<0.01,"","整"),IF(ABS(A1)<0.1,"",TEXT(RIGHT(TRUNC(A1*10)),"[dbnum2]") )&IF(RIGHT(TRUNC(A1*10))*1=0,"","角")&IF(RIGHT(TRUNC(A1*100))*1=0,"整",TEXT(RIGHT(TRUNC(A1*100)),"[dbnum2]")&"分"))) 公式四是四舍五入公式,公式五则是截尾公式。
两个公式的结构其实是一样的,只是使用了不同的函数。
下面用公式四来说明。
TEXT(INT(ROUND(ABS(A1),2)),"[DBNum2]")&"元"用来处理整数部分,考虑到纯小数及舍入问题,增加一个判断ABS(A1)<0.995,用0.995,即保证了正常的舍入,又避免了出现0.9945也进行舍入的错误。
用RIGHTB(TEXT(A1,".00"),2)*1=0来判断是不是纯整数,是就输出“整”,后面就不用处理了。
因为TEXT函数输出的是文本值,所以在这里有两种处理方法,一是就是本式,二是RIGHTB(TEXT(A1,".00"),2)="00"。