Math.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. //#region 函数区域
  2. Namespace.register("U.UF.Math");
  3. /**
  4. * 获取一个随机数
  5. *
  6. * @param {number} 随机数的长度
  7. * @return {number} 随机数
  8. */
  9. U.UF.Math.getRandom = function (n) {
  10. return Math.floor(Math.random() * n + 1);
  11. }
  12. /**
  13. * 获取两个数字间的随机数
  14. *
  15. * @param {number} 位置的开始
  16. * @param {number} 位置的结束
  17. * @return {number} 随机数
  18. */
  19. U.UF.Math.randomRange = function (m, n) {
  20. return Math.floor(Math.random() * Math.abs(n - m)) + (m > n ? n : m);
  21. }
  22. /**
  23. * 冒泡排序法的封装
  24. *
  25. * @param {array} 排序数组
  26. * @param {string} 排序类型
  27. * @param {function} 判断执行函数
  28. * @param {number} 是否是升序降序
  29. ----------[-1] 升序
  30. ----------[1] 降序
  31. */
  32. U.UF.Math.sequence = function (arr, str, fun, num) {
  33. if (arr) {//是否存在数组
  34. var _num;
  35. arr = arr.sort(function (obj1, obj2) {//arr.sort()根据条件,对json数组进行排序
  36. if (fun(obj1[str], obj2[str])) {//是否是升序降序
  37. _num = (-1) * (num || 1); //num=-1升序
  38. } else {
  39. _num = 1 * (num || 1); //num=1 降序
  40. }
  41. return _num;
  42. });
  43. return arr;
  44. };
  45. }
  46. /**
  47. *浮点数运算函数
  48. JavaScript浮点运算的一个bug。 比如:7*0.8 JavaScript算出来就是:5.6000000000000005
  49. * 数字计算 解决浮点的bug
  50. *
  51. * @param {number} 数字1
  52. * @param {number} 数字2
  53. * @param {string} 连系符号 + - * /
  54. */
  55. U.UF.Math.floatOperate = function (number1, number2, operator) {
  56. var i, //循环初始化
  57. _pow, ////用于存放数据的变量
  58. _strarr = [String(number1), String(number2)]; //用于存放数据的数组
  59. //获取变成整数差几位
  60. for (i = 0; i < 2; i++) {
  61. _strarr[i + 2] = _strarr[i].length - _strarr[i].indexOf(".") - 1;
  62. }
  63. //变成整数的幂
  64. _pow = Math.pow(10, Math.max(_strarr[2], _strarr[3]));
  65. //运算得出结果
  66. return (eval("0," + _strarr[0] * _pow + operator + _strarr[1] * _pow)) / _pow;
  67. }