float 소수점 8자리 저장 질문

float 소수점 8자리 저장 질문

QA

float 소수점 8자리 저장 질문

본문

안녕하세요.

 

요즘 파고 있는 암호화폐 관련 순위표를 만들다 안풀리는 문제가 있어서 질문합니다.

 

순위표 테이블에 소수점 이하까지 있는 usd 가격 칼럼의 데이터형을 float로 했는데 

6.5$ 처럼 소수점 6자리 이하는 잘 저장됩니다.

그런데 0.000094를 저장하면 9.4e-05$ 처럼 표시되네요.

그래서 float(5,8) 이렇게 해봤더니 모든 값이 소수점 8자리로 표시되고 값도 정확히 저장되지 않네요.

 

0.000094를 0.000094로 온전히 저장하려면 어떤 데이터 타입으로 해야 할까요?

이 질문에 댓글 쓰기 :

답변 3

제대로 저장되고 있는게 맞습니다.

 


echo sprintf("%.6lf", 9.4e-05);

 

이렇게 해서 출력하면 0.000094 라고 제대로 나옵니다.

 

9.4e-05 는 9.4 x 10^(-5) 의 의미입니다.

저장은 제대로 된거는 맞네요

단지 표시할때  9.4e-05$ 가 아닌 0.000094 로 표현되면 되는거 아닌가요?

number_format($float변수, 표시할자리수, '.', '');

이런식으로요

혹시 DB에 저장하려 하신다면 mysql의 경우 필드타입을 decimal 사용하시면 될 것 같습니다.

 

DECIMAL(M,D)

M은 소수 부분을 포함한 실수의 총 자릿수를 나타내며, 최댓값은 65입니다.

D는 소수 부분의 자릿수를 나타내며, D가 0이면 소수 부분을 가지지 않습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 1

회원로그인

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