float 소수점 8자리 저장 질문 채택완료
안녕하세요.
요즘 파고 있는 암호화폐 관련 순위표를 만들다 안풀리는 문제가 있어서 질문합니다.
순위표 테이블에 소수점 이하까지 있는 usd 가격 칼럼의 데이터형을 float로 했는데
6.5$ 처럼 소수점 6자리 이하는 잘 저장됩니다.
그런데 0.000094를 저장하면 9.4e-05$ 처럼 표시되네요.
그래서 float(5,8) 이렇게 해봤더니 모든 값이 소수점 8자리로 표시되고 값도 정확히 저장되지 않네요.
0.000094를 0.000094로 온전히 저장하려면 어떤 데이터 타입으로 해야 할까요?
답변 3개
제대로 저장되고 있는게 맞습니다.
</p>
<p>echo sprintf("%.6lf", 9.4e-05);</p>
<p>
이렇게 해서 출력하면 0.000094 라고 제대로 나옵니다.
9.4e-05 는 9.4 x 10^(-5) 의 의미입니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
혹시 DB에 저장하려 하신다면 mysql의 경우 필드타입을 decimal 사용하시면 될 것 같습니다.
DECIMAL(M,D)
M은 소수 부분을 포함한 실수의 총 자릿수를 나타내며, 최댓값은 65입니다.
D는 소수 부분의 자릿수를 나타내며, D가 0이면 소수 부분을 가지지 않습니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인