helperCreateMathNumber.js 856 B

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