금액 단위만 한글로

금액 단위만 한글로

금액 단위만 한글로

코드

formatKRW(amount) {  
  let postfix = ['원', '만원', '억원', '조원']  
  let i = 0
  do {  
    sig_number = amount
    if(i < 2 && sig_number >= 10 {
      // 소수 첫째자리까지 표시
      sig_number = Math.floor(sig_number)
    }
    amount = Math.floor(amount / 10000 * 10) / 10
    i++
  } while(Math.floor(amount) > 0)
return sig_number + postfix[i-1] 
}

// output
console.log(formatKRW(677)) // 677원 
console.log(formatKRW(703))  // 703원 
console.log(formatKRW(67703))  // 6.7만원
console.log(formatKRW(667703))  // 66만원
console.log(formatKRW(2667703))  // 266만원
console.log(formatKRW(32667703))  // 3266만원
console.log(formatKRW(432667703))  // 4.3억
console.log(formatKRW(2432667703))  // 24.3억
console.log(formatKRW(24326677031))  // 243.2억
console.log(formatKRW(243266770312))  // 2432.4억 
console.log(formatKRW(2432667703123))  // 2.4조

주의할 점

천 단위에서 콤마를 찍어줄 때, decimal(소수점)을 유의해주어야 한다. 소수점 첫째자리까지 표시해주면 된다.

나는 이 부분에서 decimal을 신경쓰지 않아서 기껏 만들어놓은 소수점 첫째자리가 날아갔었다!

댓글

가장 많이 본 글