소수점 자릿수 계산하자

이창호·2022년 5월 23일
0
post-thumbnail

최근에 요청사항 중에 소수점 세자리까지는 그대로 노출,
세자리가 넘어가면 넷째자리에서 반올림 후에 세자리로 표현 해 달라는 요청이 있었다.
어떻게 처리할까 하다가, 단순하게 소수점 자체를 기준으로 처리하기로 했다.

const convertNumber = (value) => {

  let result;

  const demicalCount = ((target) => {
    if (typeof target !== "number") return 0;
    return Number.isInteger(value) ? 0 : target.toString().split(".")[1].length;
  })(value);
  
  if (demicalCount > 3) {
	  return Math.round(value * 1000) / 1000;
  } else {
    ...
  }
};
  1. 값이 비어 있을수도 있어서 number가 아닐 경우 0으로 돌려 줌
  2. demicalCount에 정수면 0을 담고, 아니면 문자로 변환하여 split으로 자른 후, 뒷자리의 길이를 반환
  3. demicalCount(소수점자리갯수)가 3초과일 경우 Math.round(value * 1000) / 1000을 하여 반올림 한 후, 세자리로 반환하였다.
profile
조금씩 나아지기

0개의 댓글