Programing

MySQL DECIMAL을 사용하는 방법?

알 수 없는 사용자 2020. 5. 30. 09:06
반응형

MySQL DECIMAL을 사용하는 방법?


MySQL의 DECIMAL을 파악할 수 없습니다. 00.0001에서 99.9999 사이의 숫자를 포함 할 수있는 행이 필요합니다. 어떻게 작동하도록 구성합니까?


DOUBLE 열은 DECIMAL 열과 같지 않으므로 재무 데이터에 DOUBLE 열을 사용하면 문제가 발생 합니다.

DOUBLE은 실제로 FLOAT 의 배정도 (32 비트 대신 64 비트) 버전입니다 . 부동 소수점 숫자는 실수의 대략적인 표현이며 정확하지 않습니다. 실제로 0.01과 같은 간단한 숫자는 FLOAT 또는 DOUBLE 유형에서 정확하게 표현되지 않습니다.

DECIMAL 열은 정확한 표현이지만 훨씬 적은 수의 가능한 범위를 위해 더 많은 공간을 차지합니다. 0.0001에서 99.9999 사이의 값을 보유 할 수있는 열을 만들려면 다음 명령문이 필요합니다.

CREATE TABLE your_table
(
    your_column DECIMAL(6,4) NOT NULL
);

열 정의는 DECIMAL (M, D) 형식을 따릅니다. 여기서 M 은 최대 자릿수 ( 정밀도 )이고 D 는 소수점 오른쪽에있는 자릿수 ( 스케일 )입니다.

이는 이전 명령이 -99.9999에서 99.9999 사이의 값을 허용하는 열을 작성 함을 의미합니다. 0.0000에서 99.9999 범위의 UNSIGNED DECIMAL 열을 만들 수도 있습니다.

MySQL DECIMAL에 대한 자세한 내용은 공식 문서 는 항상 훌륭한 자료입니다.

이 모든 정보는 MySQL 5.0.3 이상의 버전에 해당된다는 것을 명심하십시오. 이전 버전을 사용하는 경우 실제로 업그레이드해야합니다.


위의 답변은 정확 해 보이지만 작동 방법에 대한 간단한 설명 만 제공하면됩니다.

열이로 설정되어 있다고 가정하십시오 DECIMAL(13,4). 이는 열의 총 크기가 13 자리이며,이 중 4 개가 정밀 표현에 사용됨을 의미합니다.

따라서 요약하면 해당 열의 최대 값은 다음과 같습니다. 999999999.9999


의견에는 올바른 해결책이 있지만 단일 답변으로 요약하면 다음과 같습니다.

DECIMAL (6,4)을 사용해야합니다.

그런 다음 소수점 6 자리 (소수점 앞뒤 2 자리)를 총 6 자리로 지정할 수 있습니다. 에 따라 적어도 .


십진 데이터 유형에 대한 MySQL 5.x 사양 은 다음과 같습니다 DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]. 위의 대답은 부호없는 소수를 사용할 수 없다는 잘못된 말입니다.

부호없는 10 진수 만 허용하고 총 길이는 6 자리이며 그 중 4는 10 진수 인 필드를 정의하려면 다음을 사용 DECIMAL (6,4) UNSIGNED합니다..

마찬가지로 부호없는 (즉, 음수가 아닌) FLOAT 및 DOUBLE 데이터 유형을 작성할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/4834390/how-to-use-mysql-decimal

반응형