digital.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. //保留两位小数,不四舍五入
  70. digital.keepTwoDecimal=(num)=>{
  71. return Math.floor(num * 100) / 100
  72. }
  73. export default digital