number.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. export function range(num, min, max) {
  2. return Math.min(Math.max(num, min), max);
  3. }
  4. function trimExtraChar(value, _char, regExp) {
  5. var index = value.indexOf(_char);
  6. var prefix = '';
  7. if (index === -1) {
  8. return value;
  9. }
  10. if (_char === '-' && index !== 0) {
  11. return value.slice(0, index);
  12. }
  13. if (_char === '.' && value.match(/^(\.|-\.)/)) {
  14. prefix = index ? '-0' : '0';
  15. }
  16. return prefix + value.slice(0, index + 1) + value.slice(index).replace(regExp, '');
  17. }
  18. export function formatNumber(value, allowDot, allowMinus) {
  19. if (allowDot === void 0) {
  20. allowDot = true;
  21. }
  22. if (allowMinus === void 0) {
  23. allowMinus = true;
  24. }
  25. if (allowDot) {
  26. value = trimExtraChar(value, '.', /\./g);
  27. } else {
  28. value = value.split('.')[0];
  29. }
  30. if (allowMinus) {
  31. value = trimExtraChar(value, '-', /-/g);
  32. } else {
  33. value = value.replace(/-/, '');
  34. }
  35. var regExp = allowDot ? /[^-0-9.]/g : /[^-0-9]/g;
  36. return value.replace(regExp, '');
  37. } // add num and avoid float number
  38. export function addNumber(num1, num2) {
  39. var cardinal = Math.pow(10, 10);
  40. return Math.round((num1 + num2) * cardinal) / cardinal;
  41. }