The test passed.
FUNCTION
Numtochar
(
Const
n
:
REAL
):
String
;
/ / Can get trillion, and you can expand
Const
CNUM
:
WideString
=
'Zero 壹 肆 柒捌 柒捌 - 万 仟 佰 佰 万 万 佰 元 分
;
Ccha
:
array
[
0..1
,
0..12
]
Of
String
=
(("
'元'
,
'Zero pick'
,
'佰'
,
'Zero'
,
'万'
,
'零'
,
'hundreds of millions'
,
'Zero zero'
,
'Zero'
,
'万'
,
'零'
,
'hundreds of millions'
,
'元'
),
(
'yuan'
,
'zero'
,
'zero'
,
'zero'
,
'Wan'
,
'Billion'
,
'Billion'
,
'zero'
,
'zero'
,
'Wan'
,
'Billion'
,
'Billion'
,
'yuan'
));
VAR
i
:
Integer
;
Snum
,
STEMP
:
WideString
;
Begin
Result
: =
'' '
;
Snum
: =
Format
(
'% 15d'
, [
Round
(
n
*
100
);
for
i
: =
0
TO
14
DO
Begin
STEMP
: =
Copy
(
Snum
,
i
1
,
1
);
IF
STEMP
=
'' '
THEN
Continue
Else
Result
: =
Result
CNUM
[
Strtoint
(
STEMP
)
1
]
CNUM
[
i
13
];
end
;
for
i
: =
0
TO
12
DO
Result
: =
StringReplace
(
Result
,
Ccha
[
0
,
i
],
Ccha
[
1
,
i
],
[
RFREPLACEAll
]);
IF
POS
(
'Zero'
,
Result
) =
0
THEN
Result
: =
StringReplace
(
Result
,
'Zero angle'
,
'zero'
,
[
RFREPLACEAll
])
Else
Result
: =
StringReplace
(
Result
,
'Zero angle'
,
'whole'
,
[
RFREPLACEAll
]);
Result
: =
StringReplace
(
Result
,
'Zero'
,
'' '
,
[
RFREPLACEAll
]);
end
;
2. I have no testing this.
FUNCTION
Changdx2
(
mmje
:
Double
):
String
;
Const
S1
:
String
=
'Zero Zhai 叁 肆 柒捌 柒捌'
;
S2
:
String
=
'Different angle pickers 佰 万 万 万 万 万;;
FUNCTION
Strtran
(
Const
S
,
S1
,
S2
:
String
):
String
;
Begin
Result
: =
StringReplace
(
S
,
S1
,
S2
,
[
RFREPLACEAll
]);
end
;
VAR
s
,
DX
:
String
;
i
,
Len
:
Integer
;
Begin
IF
mmje
<
0
THEN
Begin
DX
: =
'negative'
;
mmje
: =
-
mmje
;
end
;
s
: =
Format
(
'% .0f'
,
[
mmje
*
100
]);
Len
: =
Length
(
s
);
for
i
: =
1
TO
Len
DO
DX
: =
DX
Copy
(
S1
,
(
ORD
(
s
[
i
])
-
ORD
(
'0'
))
2
1
,
2
)
Copy
(
S2
,
(
Len
-
i
) *
2
1
,
2
);
DX
: =
Strtran
(
Strtran
(
Strtran
(
Strtran
(
Strtran
(
DX
,
'Zero'
,
'zero'
),
'佰'
,
'zero'
),
'Zero pick'
,
'zero'
),
'Zero angle'
,
'zero'
),
'Zero'
,
'whole'
);
DX
: =
Strtran
(
Strtran
(
Strtran
(
Strtran
(
Strtran
(
DX
,
'Zero'
,
'zero'
),
'Zero'
,
'zero'
),
'零'
,
'Billion'
),
'万'
,
'Wan'
),
'元'
,
'yuan'
);
IF
DX
=
'whole'
THEN
Result
: =
'Zero yuan'
Else
Result
: =
Strtran
(
Strtran
(
DX
,
'hundreds of millions'
,
'Billion'
),
'Zeroide
,
'whole'
);
end
;