toFixed.js 871 B

1234567891011121314151617181920212223242526272829
  1. var round = require('./round')
  2. var toValString = require('../string/toString')
  3. var helperStringRepeat = require('../string/helperStringRepeat')
  4. var helperNumberOffsetPoint = require('./helperNumberOffsetPoint')
  5. /**
  6. * 将数值四舍五入并格式化为固定小数位的字符串
  7. *
  8. * @param {string|number} num 数值
  9. * @param {number} digits 小数保留位数
  10. * @return {String}
  11. */
  12. function toFixed (num, digits) {
  13. var str = toValString(round(num, digits))
  14. var nums = str.split('.')
  15. var intStr = nums[0]
  16. var floatStr = nums[1] || ''
  17. var digitOffsetIndex = digits - floatStr.length
  18. if (digits) {
  19. if (digitOffsetIndex > 0) {
  20. return intStr + '.' + floatStr + helperStringRepeat('0', digitOffsetIndex)
  21. }
  22. return intStr + helperNumberOffsetPoint(floatStr, Math.abs(digitOffsetIndex))
  23. }
  24. return intStr
  25. }
  26. module.exports = toFixed