num-kit.js 823 B

1234567891011121314151617181920212223242526272829303132333435
  1. module.exports = class NumKit {
  2. /**
  3. * 截取小数位工具
  4. * @param num 需要截取的小数
  5. * @param n 截取位数
  6. * @returns {number}
  7. * @private
  8. */
  9. static getSubFloat(num, n) {
  10. if (!num) {
  11. return 0
  12. }
  13. let rst = num.toString()
  14. if (rst.indexOf('e') !== -1) {
  15. const e = parseInt(rst.split('e')[1])
  16. rst = parseFloat(rst.substring(0, rst.indexOf('.') + n + 1)) * Math.pow(10, e)
  17. } else if (rst.indexOf('.') !== -1) {
  18. rst = rst.substring(0, rst.indexOf('.') + n + 1)
  19. }
  20. return parseFloat(rst)
  21. }
  22. /**
  23. * 转成非科学计数法
  24. * @param num
  25. * @returns {string}
  26. */
  27. static toNonExponential(num) {
  28. const m = num.toExponential().match(/\d(?:\.(\d*))?e([+-]\d+)/)
  29. return num.toFixed(Math.max(0, (m[1] || '').length - m[2]))
  30. }
  31. }