Function方法如下,传入number类型数据,就会返回大写汉字。

Function NumberToCN(&_Amount As number) Returns string

Local string &AmountCN;

Local array of string &array = Split(String(&_Amount), ".");

Local string &integer = "";

Local string &decimal = ""; 

Local array of string &arrayCN = CreateArray("壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖");

/*1      2 3 4 5 6 7 8 9 0 十 百 千 万 亿 元*/

/*壹 贰 叁 肆 伍 陆 柒 捌 玖 零 拾 佰 仟 万 亿 圆*/

&integer = &array [1];

&Length = Len(&integer);

If &Length <= 16 Then

&flg = "N";

For &i = 1 To &Length

&num = Value(Substring(&integer, &i, 1));

REM MessageBox(0, "", 0, 0, "y=" | &num);

&temp = &Length + 1 - &i;

If &num <> 0 Then

If &flg = "N" Then

&AmountCN = &AmountCN | &arrayCN [&num];

Else

&AmountCN = &AmountCN | "零" | &arrayCN [&num];

End-If;

&num = Mod(&temp, 4);

Evaluate &num

When = 0

If &temp > 0 Then

&AmountCN = &AmountCN | "仟";

End-If;

Break;

When = 1

Break;

When = 2

&AmountCN = &AmountCN | "拾";

Break;

When = 3

&AmountCN = &AmountCN | "佰";

Break;

End-Evaluate;

&flg = "N"

Else

&flg = "Y";

End-If;

Evaluate &temp

When = 13

When = 5

&AmountCN = &AmountCN | "万";

&flg = "N";

Break;

When = 9

&AmountCN = &AmountCN | "亿";

&flg = "N";

Break;

End-Evaluate;

End-For;

&AmountCN = &AmountCN | "元";

If &array.Len >= 2 Then

If Value(Substring(&array [2], 1, 1)) = 0 And

Value(Substring(&array [2], 2, 1)) = 0 Then

Else

&num = Value(Substring(&array [2], 1, 1));

If &num <> 0 Then

&AmountCN = &AmountCN | &arrayCN [&num] | "角";

Else

&AmountCN = &AmountCN | "零角";

End-If;

&num = Value(Substring(&array [2], 2, 1));

If &num <> 0 Then

&AmountCN = &AmountCN | &arrayCN [&num] | "分";

End-If;

End-If;

End-If;

Else

&AmountCN = "金额太大";

End-If;

Return &AmountCN;

End-Function; 

调用方法即可

188624071badf237cc4da5f0e91c2ac6.png

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐