tfloattostr.pp 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. { Test for FloatToStr and CurrToStr functions. }
  2. uses sysutils;
  3. const
  4. MaxCurrency : currency = 922337203685477.5807;
  5. MinCurrency : currency = -922337203685477.5807;
  6. var
  7. ErrCount: longint;
  8. procedure CheckResult(const s, ref: string);
  9. begin
  10. if s <> ref then
  11. begin
  12. writeln('Got : ', s);
  13. writeln('Should be: ', ref);
  14. Inc(ErrCount);
  15. end;
  16. end;
  17. var
  18. e: extended;
  19. d: double;
  20. s: single;
  21. c: currency;
  22. begin
  23. e:=1234567890123.4;
  24. d:=12345.12345;
  25. s:=12345.12;
  26. c:=12345.1234;
  27. CheckResult(FloatToStrF(e,ffExponent,15,1), '1'+DecimalSeparator+'23456789012340E+12');
  28. CheckResult(FloatToStrF(d,ffExponent,11,0), '1'+DecimalSeparator+'2345123450E+4');
  29. CheckResult(FloatToStrF(s,ffExponent,8,0), '1'+DecimalSeparator+'2345120E+4');
  30. CheckResult(FloatToStrF(s,ffExponent,8,7), '1'+DecimalSeparator+'2345120E+0004');
  31. CheckResult(FloatToStrF(e,ffExponent,8,3), '1'+DecimalSeparator+'2345679E+012');
  32. CheckResult(FloatToStrF(c,ffExponent,10,0), '1'+DecimalSeparator+'234512340E+4');
  33. CheckResult(FloatToStrF(c,ffExponent,11,2), '1'+DecimalSeparator+'2345123400E+04');
  34. CheckResult(FloatToStrF(c,ffExponent,10,4), '1'+DecimalSeparator+'234512340E+0004');
  35. CheckResult(FloatToStrF(-12345.12345,ffExponent,11,0), '-1'+DecimalSeparator+'2345123450E+4');
  36. CheckResult(FloatToStrF(-0.00000123,ffGeneral,15,0), '-1'+DecimalSeparator+'23E-6');
  37. CheckResult(FloatToStrF(-12345.12345,ffGeneral,7,0), '-12345'+DecimalSeparator+'12');
  38. CheckResult(CurrToStr(-12345.1234), '-12345'+DecimalSeparator+'1234');
  39. CheckResult(CurrToStr(MaxCurrency), '922337203685477'+DecimalSeparator+'5807');
  40. CheckResult(CurrToStr(MinCurrency), '-922337203685477'+DecimalSeparator+'5807');
  41. NegCurrFormat:=8;
  42. CheckResult(FloatToStrF(-12345.1234,ffCurrency,19,4), '-12' + ThousandSeparator + '345'+DecimalSeparator+'1234 ' + CurrencyString);
  43. CheckResult(FloatToStrF(MinCurrency,ffCurrency,19,4), '-922' + ThousandSeparator + '337' + ThousandSeparator + '203' + ThousandSeparator + '685' + ThousandSeparator + '477'+DecimalSeparator+'5807 ' + CurrencyString);
  44. if ErrCount > 0 then
  45. begin
  46. writeln('Test failed. Errors: ', ErrCount);
  47. Halt(1);
  48. end
  49. else
  50. writeln('Test completed.');
  51. end.