tstrreal1.pp 870 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. program tstrreal1;
  2. uses
  3. jdk15;
  4. {$macro on}
  5. {$define write:=JLSystem.fout.print}
  6. {$define writeln:=JLSystem.fout.println}
  7. const
  8. s: array[0..16] of string[13] =
  9. ('99999.900000',
  10. '99999.990000',
  11. '99999.999000',
  12. '99999.999900',
  13. '99999.999990',
  14. '99999.999999',
  15. '100000.000000',
  16. '100000.000000',
  17. '100000.000000',
  18. '100000.000000',
  19. '100000.000000',
  20. '100000.000000',
  21. '100000.000000',
  22. '100000.000000',
  23. '100000.000000',
  24. '100000.000000',
  25. '100000.000000');
  26. var
  27. e,e2,e3: double;
  28. s2: string;
  29. c: longint;
  30. begin
  31. e := 100000.0;
  32. e2 := 0.1;
  33. c := 0;
  34. repeat
  35. e3 := e-e2;
  36. str(e3:0:6,s2);
  37. writeln(s2);
  38. if s2 <> s[c] then
  39. begin
  40. write(' Error, should be '); writeln(s[c]);
  41. halt(1);
  42. end;
  43. e2 := e2 /10.0;
  44. inc(c);
  45. until e2 < 1e-17;
  46. end.