test-decimal.nut 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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)
  12. dec1 = Decimal("0.1");
  13. dec2 = Decimal("0.3");
  14. print(dec1+dec1+dec1-dec2);
  15. dec1 = Decimal("10.0");
  16. dec2 = Decimal("3.33");
  17. local result = dec1 + dec2;
  18. print(result);
  19. result = dec1 - dec2;
  20. print(result);
  21. result = dec1 * dec2;
  22. print(result);
  23. result = dec1 / dec2;
  24. print(result);
  25. dec2 = Decimal(0);
  26. try {
  27. result = dec1 / dec2;
  28. }
  29. catch(e){
  30. print(e);
  31. }
  32. print(result);
  33. print(Decimal.context);
  34. print(result.context.prec());
  35. dec1 = Decimal("10.0");
  36. dec2 = Decimal("3.33");
  37. local count = 1000;
  38. f1 = 10.54;
  39. f2 = 3.28;
  40. local now = os.clock();
  41. for(local i=0; i < count; ++i){
  42. result = dec1 + dec2;
  43. result = dec1 - dec2;
  44. result = dec1 * dec2;
  45. result = dec1 / dec2;
  46. //if(i%1000) collectgarbage();
  47. if(i%1000) dummy(); //dummy function call to trigger release hook garbage collection
  48. }
  49. print("Decimal took", os.clock()-now);
  50. now = os.clock();
  51. for(local i=0; i < count; ++i){
  52. result = f1 + f2;
  53. result = f1 - f2;
  54. result = f1 * f2;
  55. result = f1 / f2;
  56. if(i%1000) dummy(); // only to make this loop with the same extra load of a function call
  57. }
  58. print("Float took", os.clock()-now);
  59. //stdin.readn('c');