helperCreateMathNumber.js 921 B

123456789101112131415161718192021222324252627282930313233
  1. var helperMultiply = require('./helperMultiply')
  2. var toNumber = require('./toNumber')
  3. var toNumberString = require('./toNumberString')
  4. function helperCreateMathNumber(name) {
  5. return function (num, digits) {
  6. var numRest = toNumber(num)
  7. var rest = numRest
  8. if (numRest) {
  9. digits = digits >> 0
  10. var numStr = toNumberString(numRest)
  11. var nums = numStr.split('.')
  12. var intStr = nums[0]
  13. var floatStr = nums[1] || ''
  14. var fStr = floatStr.substring(0, digits + 1)
  15. var subRest = intStr + (fStr ? ('.' + fStr) : '')
  16. if (digits >= floatStr.length) {
  17. return toNumber(subRest)
  18. }
  19. subRest = numRest
  20. if (digits > 0) {
  21. var ratio = Math.pow(10, digits)
  22. rest = Math[name](helperMultiply(subRest, ratio)) / ratio
  23. } else {
  24. rest = Math[name](subRest)
  25. }
  26. }
  27. return rest
  28. }
  29. }
  30. module.exports = helperCreateMathNumber