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