digital.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. let digital = {}
  2. //浮点数相加
  3. digital.floatAdd = (arg1, arg2) => {
  4. var r1, r2, m;
  5. try {
  6. r1 = arg1.toString().split(".")[1].length
  7. } catch (e) {
  8. r1 = 0
  9. }
  10. try {
  11. r2 = arg2.toString().split(".")[1].length
  12. } catch (e) {
  13. r2 = 0
  14. }
  15. m = Math.pow(10, Math.max(r1, r2));
  16. return (arg1 * m + arg2 * m) / m;
  17. },
  18. //浮点数相减
  19. digital.floatSub = (arg1, arg2) => {
  20. var r1, r2, m, n;
  21. try {
  22. r1 = arg1.toString().split(".")[1].length
  23. } catch (e) {
  24. r1 = 0
  25. }
  26. try {
  27. r2 = arg2.toString().split(".")[1].length
  28. } catch (e) {
  29. r2 = 0
  30. }
  31. m = Math.pow(10, Math.max(r1, r2));
  32. n = (r1 >= r2) ? r1 : r2;
  33. return ((arg1 * m - arg2 * m) / m).toFixed(n)
  34. },
  35. //浮点数相乘
  36. digital.floatMul=(arg1, arg2)=> {
  37. if (arg1== undefined || arg2==undefined) {
  38. return 0
  39. }
  40. var m = 0;
  41. var s1 = arg1.toString();
  42. var s2 = arg2.toString();
  43. try {
  44. m += s1.split(".")[1].length;
  45. } catch (e) {}
  46. try {
  47. m += s2.split(".")[1].length;
  48. } catch (e) {}
  49. return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
  50. },
  51. //四舍五入保留2位小数(不够位数,则用0替补)
  52. digital.keepTwoDecimalFull = num => {
  53. var result = parseFloat(num)
  54. if (isNaN(result)) {
  55. return false
  56. }
  57. result = Math.round(num * 100) / 100
  58. var s_x = result.toString()
  59. var pos_decimal = s_x.indexOf('.')
  60. if (pos_decimal < 0) {
  61. pos_decimal = s_x.length
  62. s_x += '.'
  63. }
  64. while (s_x.length <= pos_decimal + 2) {
  65. s_x += '0'
  66. }
  67. return s_x
  68. }
  69. export default digital