冷凝胶前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
1.4 KiB

2 years ago
  1. import {Decimal} from "decimal.js";
  2. // args第一位为被操作数据
  3. //保留小数向上取整
  4. function formatUp(num, len) {
  5. return new Decimal(num).toDecimalPlaces(len, Decimal.ROUND_UP).toString()
  6. }
  7. //保留小数向下取整
  8. function formatDown(num, len) {
  9. return new Decimal(num).toDecimalPlaces(len, Decimal.ROUND_DOWN).toNumber()
  10. }
  11. //加法
  12. function add(...args) {
  13. let result = new Decimal(args[0]);
  14. for (let i = 1; i < args.length; i++) {
  15. result = result.add(new Decimal(args[i]));
  16. }
  17. return result.toNumber();
  18. }
  19. //减法
  20. function sub(...args) {
  21. let result = new Decimal(args[0]);
  22. for (let i = 1; i < args.length; i++) {
  23. result = result.sub(new Decimal(args[i]));
  24. }
  25. return result.toNumber();
  26. }
  27. //乘法
  28. function mul(...args) {
  29. let result = new Decimal(args[0]);
  30. for (let i = 1; i < args.length; i++) {
  31. result = result.mul(new Decimal(args[i]));
  32. }
  33. return result.toNumber();
  34. }
  35. //除法
  36. function div(...args) {
  37. let result = new Decimal(args[0]);
  38. for (let i = 1; i < args.length; i++) {
  39. result = result.div(new Decimal(args[i]));
  40. }
  41. return result.toNumber();
  42. }
  43. //取余
  44. function mod(...args) {
  45. let result = new Decimal(args[0]);
  46. for (let i = 1; i < args.length; i++) {
  47. result = result.modulo(new Decimal(args[i]));
  48. }
  49. return result.toNumber();
  50. }
  51. export default {
  52. formatUp,
  53. formatDown,
  54. add,
  55. sub,
  56. mul,
  57. div,
  58. mod
  59. };