test-decimal.nut 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. local f1 = 1.1;
  2. local f2 = 2.2;
  3. print(f1+f2);
  4. f1 = 0.1;
  5. f2 = 0.3;
  6. print(f1+f1+f1-f2);
  7. local d = Decimal();
  8. print(d.isnan(), d.iszero(), d.isodd(), d.iseven());
  9. local dec1 = Decimal("1.1");
  10. local dec2 = Decimal("2.2");
  11. print(dec1, dec2, dec1 + dec2)
  12. local dec44 = Decimal();
  13. print("dec44", dec44);
  14. dec44.set("44.4");
  15. print("dec44", dec44);
  16. dec44.set(48);
  17. print("dec44", dec44);
  18. dec44.set(49.8);
  19. print("dec44", dec44);
  20. print("dec44", dec1 + dec44.set(22));
  21. dec1 = Decimal("0.1");
  22. dec2 = Decimal("0.3");
  23. print(dec1+dec1+dec1-dec2);
  24. dec1 = Decimal("10.0");
  25. dec2 = Decimal("3.33");
  26. local result = dec1 + dec2;
  27. print(result);
  28. result = dec1 - dec2;
  29. print(result);
  30. result = dec1 * dec2;
  31. print(result);
  32. result = dec1 / dec2;
  33. print(result);
  34. dec2 = Decimal(0);
  35. try {
  36. result = dec1 / dec2;
  37. }
  38. catch(e){
  39. print(e);
  40. }
  41. print(result);
  42. print(Decimal.context);
  43. print(result.context.prec());
  44. dec1 = Decimal("10.0");
  45. dec2 = Decimal("3.33");
  46. local count = 1000;
  47. f1 = 10.54;
  48. f2 = 3.28;
  49. local now = os.clock();
  50. for(local i=0; i < count; ++i){
  51. result = dec1 + dec2;
  52. result = dec1 - dec2;
  53. result = dec1 * dec2;
  54. result = dec1 / dec2;
  55. //if(i%1000) collectgarbage();
  56. if(i%1000) dummy(); //dummy function call to trigger release hook garbage collection
  57. }
  58. print("Decimal took", os.clock()-now);
  59. now = os.clock();
  60. for(local i=0; i < count; ++i){
  61. result = f1 + f2;
  62. result = f1 - f2;
  63. result = f1 * f2;
  64. result = f1 / f2;
  65. if(i%1000) dummy(); // only to make this loop with the same extra load of a function call
  66. }
  67. print("Float took", os.clock()-now);
  68. //stdin.readn('c');