ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 数字输出为英文描述(delphi)

数字输出为英文描述(delphi)

原创 Linux操作系统 作者:niuchao 时间:2019-03-13 18:30:05 0 删除 编辑

TNumberStr = String[130;

 

const

  Numbers: array[1..19] of TNumberStr = ('ONE', 'TWO', 'THREE', 'FOUR', 'FIVE',

    'SIX', 'SEVEN', 'EIGHT', 'NINE', 'TEN', 'ELEVEN', 'TWELVE', 'THIRTEEN',

    'FOURTEEN', 'FIFTEEN', 'SIXTEEN', 'SEVENTEEN', 'EIGHTEEN', 'NINETEEN');

 

  Tenths: array[1..9] of TNumberStr = ('TEN', 'TWENTY', 'THIRTY', 'FORTY',

    'FIFTY', 'SIXTY', 'SEVENTY', 'EIGHTY', 'NINETY');

 

  ErrorString = 'not in valid range';

  Min = 0.00;

  Max = 4294967295.99;

function RecurseNumber(N: LongWord): string;

begin

  {Inc(Calls);} //Use to count the number of recursive calls

  case N of

    0:

    Result := '';//'ZERO';

    1..19:

    Result := Numbers[N];

    20..99:

    //Result := Tenths[N div 10] + '-' + RecurseNumber(N mod 10);

    Result := Tenths[N div 10] + ' ' + RecurseNumber(N mod 10);

    100..999:

    Result := Numbers[N div 100] + ' HUNDRED ' + RecurseNumber(N mod 100);

    1000..999999:

    Result := RecurseNumber(N div 1000) + ' THOUSAND ' +

    RecurseNumber(N mod 1000);

    1000000..999999999: Result := RecurseNumber(N div 1000000) + ' MILLION ' + RecurseNumber(N mod 1000000);

    1000000000..4294967295: Result := RecurseNumber(N div 1000000000) +

    ' BILLION ' + RecurseNumber(N mod 1000000000);

  end; {Case N of}

end; {RecurseNumber}

 

function NumToLetters(Number: Real): string;

begin

  {Calls := 0;} //Use to count the number of recursive calls

  if (Number >= Min) and (Number <= Max) then

  begin

    Result := RecurseNumber(Round(Int(Number)));

    {Added for cents in a currency value}

    if not(Frac(Number) = 0.00) then

       //Result := Result + ' and ' + IntToStr(Round(Frac(Number) * 100)) + '/100';

      Result := Result + ' AND ' + RecurseNumber(Round(Frac(Number) * 100))+ ' CENTS';

  end

  else

    raise ERangeError.CreateFmt('%g ' + ErrorString + ' %g..%g', [Number, Min, Max]);

end;{NumToLetters}

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/166523/viewspace-204047/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2004-11-04

  • 博文量
    141
  • 访问量
    136191