소수점 표시 질문 드립니다.

소수점 표시 질문 드립니다.

QA

소수점 표시 질문 드립니다.

본문

안녕하세요.

소수점 표현하는데 있어 에로사항이 있어 질문 드립니다.

예를들어 50000.111에 자릿수 ,를 찍어야 해서  number_format을 사용하면 50,000으로 출력이 되어서 number_format(50000.111 , 3)을 하면 50,000.111이 출력이 되는데 문제는 소수점이 없을경우 50,000.000이 출력이 되어버린다는 겁니다...

소수점이 없는 숫자일경우는 출력이 안되도록 50,000만 출력이 되고 소수가 있을경우에만 50,000.111 이렇게 표시하려면 어떤 방법으로 해야될까요?

이 질문에 댓글 쓰기 :

답변 5

아래처럼 함수를 만들고 조건문 사용하시면 됩니다.


function x_number_format ($number , $decimals = 0 , $dec_point = "." , $thousands_sep = ",") {
    if(!is_numeric($number)) return;
    if(is_float($number)) {
        return number_format($number, $decimals, $dec_point, $thousands_sep);
    } else {
        return number_format($number, 0, $dec_point, $thousands_sep);
    }
}
echo x_number_format(50000.111, 3);
echo "\n";
echo x_number_format(50000, 3);
echo "\n";

// 참고로 정규식으로 .000으로 끝나면 제거하는 방법 남깁니다.
echo preg_replace('/\.0+$/', '', number_format('50000.111', 3)); // 50,000.111
echo preg_replace('/\.0+$/', '', number_format('50000', 3)); // 50,000

$nn= 50000;

echo is_float($ nn)? number_format($nn, 3) : number_format($nn);

 

결과는 아래와 같습니다

 

$nn=50000 ==> 50,000

$nn=50000.123 ==> 50,000.123

$nn=50000.1234 ==> 50,000.123

$nn=50000.1235 ==> 50,000.124

$nn=50000.12 ==> 50,000.120

답변을 작성하시기 전에 로그인 해주세요.
전체 13
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT