bugs.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // node bugs
  2. // Compare with BigDecTest.java
  3. var i, x, y, r,
  4. BigDecimal = require('./bigdecimal').BigDecimal;
  5. // remainder
  6. x = new BigDecimal("9.785496E-2");
  7. y = new BigDecimal("-5.9219189762E-2");
  8. r = x.remainder(y);
  9. console.log( r.toString() );
  10. // 0.09785496
  11. // Should be 0.038635770238
  12. x = new BigDecimal("1.23693014661017964112E-5");
  13. y = new BigDecimal("-6.9318042E-7");
  14. r = x.remainder(y);
  15. console.log( r.toPlainString() );
  16. // 0.0000123693014661017964112
  17. // Should be 0.0000005852343261017964112
  18. // divide
  19. x = new BigDecimal("6.9609119610E-78");
  20. y = new BigDecimal("4E-48");
  21. r = x.divide(y, 40, 6); // ROUND_HALF_EVEN
  22. console.log( r.toString() );
  23. // 1.7402279903E-30
  24. // Should be 1.7402279902E-30
  25. x = new BigDecimal("5.383458817E-83");
  26. y = new BigDecimal("8E-54");
  27. r = x.divide(y, 40, 6);
  28. console.log( r.toString() );
  29. // 6.7293235213E-30
  30. // Should be 6.7293235212E-30
  31. // compareTo
  32. x = new BigDecimal("0.04");
  33. y = new BigDecimal("0.079393068");
  34. i = x.compareTo(y);
  35. console.log(i);
  36. // 1
  37. // Should be -1
  38. x = new BigDecimal("7.88749578569876987785987658649E-10");
  39. y = new BigDecimal("4.2545098709E-6");
  40. i = x.compareTo(y);
  41. console.log(i);
  42. // 1
  43. // Should be -1