calc.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // 浮点数加法
  2. export function add (arg1, arg2) {
  3. var r1, r2, m
  4. try {
  5. r1 = arg1.toString().split('.')[1].length
  6. } catch (e) {
  7. r1 = 0
  8. }
  9. try {
  10. r2 = arg2.toString().split('.')[1].length
  11. } catch (e) {
  12. r2 = 0
  13. }
  14. m = Math.pow(10, Math.max(r1, r2))
  15. return (arg1 * m + arg2 * m) / m
  16. }
  17. // 浮点数减法
  18. export function sub (arg1, arg2) {
  19. var r1, r2, m, n
  20. try {
  21. r1 = arg1.toString().split('.')[1].length
  22. } catch (e) {
  23. r1 = 0
  24. }
  25. try {
  26. r2 = arg2.toString().split('.')[1].length
  27. } catch (e) {
  28. r2 = 0
  29. }
  30. m = Math.pow(10, Math.max(r1, r2))
  31. n = (r1 >= r2) ? r1 : r2
  32. return Math.abs(((arg1 * m - arg2 * m) / m).toFixed(n))
  33. }
  34. //浮点乘法
  35. export function mul (a, b) {
  36. var c = 0,
  37. d = a.toString(),
  38. e = b.toString();
  39. try {
  40. c += d.split(".")[1].length;
  41. } catch (f) {}
  42. try {
  43. c += e.split(".")[1].length;
  44. } catch (f) {}
  45. return Number(d.replace(".", "")) * Number(e.replace(".", "")) / Math.pow(10, c);
  46. }
  47. //浮点除法
  48. export function div (a, b) {
  49. var c, d, e = 0,
  50. f = 0;
  51. try {
  52. e = a.toString().split(".")[1].length;
  53. } catch (g) {}
  54. try {
  55. f = b.toString().split(".")[1].length;
  56. } catch (g) {}
  57. return c = Number(a.toString().replace(".", "")), d = Number(b.toString().replace(".", "")), xyutil.mul(c / d, Math.pow(10, f - e));
  58. }
  59. export default {
  60. add,
  61. sub,
  62. mul,
  63. div
  64. }