delphi 阿拉伯数字转中文汉字数字2  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi 阿拉伯数字转中文汉字数字2


delphi 阿拉伯数字转中文汉字数字

在 Delphi 中,你可以编写一个函数,将阿拉伯数字转换为中文汉字数字。以下是一个示例代码,展示如何实现这一功能。


示例代码

unit Unit1;

interface

uses
  System.SysUtils, System.Classes;

function ArabicToChinese(Num: Integer): string;

implementation

const
  ChineseDigits: array[0..9] of string = ('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
  ChineseUnits: array[0..3] of string = ('', '十', '百', '千');
  ChineseBigUnits: array[0..3] of string = ('', '万', '亿', '兆');

function ArabicToChinese(Num: Integer): string;
var
  NumStr: string;
  Len, I, UnitPos, BigUnitPos: Integer;
  ResultStr: string;
begin
  if Num = 0 then
    Exit('零');

  NumStr := IntToStr(Num);
  Len := Length(NumStr);
  ResultStr := '';
  UnitPos := 0;
  BigUnitPos := 0;

  for I := Len downto 1 do
  begin
    if (UnitPos = 0) and (BigUnitPos > 0) then
    begin
      ResultStr := ChineseBigUnits[BigUnitPos] + ResultStr;
      BigUnitPos := 0;
    end;

    if NumStr[I] <> '0' then
    begin
      ResultStr := ChineseDigits[StrToInt(NumStr[I])] + ChineseUnits[UnitPos] + ResultStr;
    end
    else if (ResultStr <> '') and (ResultStr[1] <> '零') then
    begin
      ResultStr := '零' + ResultStr;
    end;

    Inc(UnitPos);
    if UnitPos > 3 then
    begin
      UnitPos := 0;
      Inc(BigUnitPos);
    end;
  end;

  // 处理“十”开头的情况
  if (Length(ResultStr) > 1) and (ResultStr[1] = '一') and (ResultStr[2] = '十') then
    Delete(ResultStr, 1, 1);

  Result := ResultStr;
end;

end.



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.093142986297607 seconds