javascript number_format 기대한 값과 다른 값이 출력됨 ...


입력값 변수 price = 6811.15;

var strPrice = number_format(parseFloat(price),2);
console.log(strPrice); // 6,811,.15

잘못된 값 6811.15 -> number_format -> 6,811,.15

기대한 값 6811.15 -> number_format -> 6,811.15

Math.round 적용해보고 .fixed(2) 이런식으로 응용해봐도 값이 이상합니다.

  • 2016년 04월 28일에 작성됨

  • number_format은 javascript 기본 함수가 아니니 선언 된 부분이 있을텐데 그 부분을 확인하시거나 같이 올려주시면 해결에 도움이 될 것 같아요    한개발   2016.4.29 10:39     
조회수 191


1 답변


number_format은 직접 만든 함수인가요?

이렇게 해 보세요.

Number.prototype.numberFormat = function(c){
var n = this, 
    c = isNaN(c = Math.abs(c)) ? 2 : c, 
    s = n < 0 ? "-" : "", 
    i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", 
    j = (j = i.length) > 3 ? j % 3 : 0;
   return s + (j ? (i.substr(0, j) + ",") : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + ",") + (c ? "." + Math.abs(n - i).toFixed(c).slice(2) : "");
 };

var price = 6811.15;
var strPrice = (6811.15).numberFormat(2)
console.log(strPrice); // 6,811,.15
  • 2016년 04월 28일에 수정됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.
  • 2016년 04월 28일에 작성됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close