Advertisement
Guest User

Untitled

a guest
Feb 28th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. function formatNumber (num) {
  2.  
  3. if (typeof num !== 'number') {
  4. console.error('Incorrect value was passed. Please enter a valid number')
  5. return
  6. }
  7.  
  8. let isNegativeNum
  9. let isFloatingNum
  10. let absoluteNum
  11. let decimalNum
  12.  
  13. let formatedString = ''
  14. let count = 1
  15.  
  16. // Negative Numbers
  17. if (num < 0) {
  18. absoluteNum = Math.abs(num)
  19. isNegativeNum = true
  20. }
  21.  
  22. absoluteNum = absoluteNum || num
  23.  
  24. // Floating point numbers
  25. if (!Number.isInteger(absoluteNum)) {
  26. decimalNum = absoluteNum - Math.floor(absoluteNum)
  27. decimalNum = decimalNum.toString().slice(1)
  28.  
  29. absoluteNum = Math.floor(absoluteNum)
  30. isFloatingNum = true
  31. }
  32.  
  33. // Add the commas to the number
  34. let iteratableAbsoluteNum = absoluteNum.toString()
  35. let len = iteratableAbsoluteNum.length
  36. for (let i = len - 1; i >= 0; i--) {
  37. formatedString = iteratableAbsoluteNum.charAt(i) + formatedString
  38. if (count % 3 === 0 && i != 0) {
  39. count = 0
  40. formatedString = ',' + formatedString
  41. }
  42. count++
  43. }
  44.  
  45. if (isNegativeNum) {
  46. formatedString = '-' + formatedString
  47. }
  48.  
  49. if (isFloatingNum) {
  50. formatedString = formatedString + decimalNum.toString()
  51. }
  52.  
  53. console.log(formatedString)
  54. }
  55.  
  56. formatNumber(100000) // "100,000"
  57. formatNumber(-1000) // "-1,000"
  58. formatNumber(-10.10) // "-10.09999999999999964"
  59. formatNumber(10.10) // "10.09999999999999964"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement