MySQL 데이터베이스에 많은 레코드를 저장하고 싶습니다. 그들 모두는 돈 가치를 포함합니다. 그러나 각 숫자에 몇 개의 숫자가 삽입되는지 모르겠습니다.
이 목적으로 어떤 데이터 유형을 사용해야합니까?
VARCHAR 또는 INT (또는 기타 숫자 데이터 유형)?
답변
돈은 정확한 표현이 필요하기 때문에 대략적인 데이터 유형을 사용하지 마십시오 float
. 이와 같은 고정 소수점 숫자 데이터 유형을 사용할 수 있습니다
decimal(15,2)
15
정밀도 (소수 자릿수를 포함한 전체 값 길이)2
소수점 이하 자릿수입니다.
MySQL 숫자 유형을 참조하십시오 .
이러한 유형은 통화 데이터 와 같이 정확한 정밀도를 유지하는 것이 중요 할 때 사용됩니다 .
답변
사용 DECIMAL
하거나 NUMERIC
둘 다 동일
DECIMAL 및 NUMERIC 유형은 정확한 숫자 데이터 값을 저장합니다. 이러한 유형은 통화 데이터와 같이 정확한 정밀도를 유지하는 것이 중요 할 때 사용됩니다. MySQL에서 NUMERIC은 DECIMAL로 구현되므로 DECIMAL에 대한 다음 설명은 NUMERIC에 동일하게 적용됩니다. : MySQL
즉 DECIMAL(10,2)
답변
나는을 사용 하고 100BIGINT
을 곱하여 값을 저장하여 정수가되도록 선호합니다 .
예를 들어, 통화 값을 나타내 93.49
려면 값을로 저장 9349
하고 값 을 100으로 나누고 표시 할 수 있습니다 . 이것은 적은 저장 공간을 차지할 것입니다.
주의 :
대부분currency * currency
곱셈을 수행하지 않습니다. 곱셈을 수행 하는 경우 결과를 100으로 나누고 저장하여 적절한 정밀도로 돌아갑니다.
답변
필요에 따라 다릅니다.
DECIMAL(10,2)
일반적으로 사용하는 것으로 충분하지만 조금 더 정확한 값이 필요한 경우 설정할 수 있습니다 DECIMAL(10,4)
.
큰 값을 교체하면 작업하는 경우 10
에 19
.
답변
애플리케이션이 최대 1 조 달러의 금액을 처리해야하는 경우 다음과 같이 작동합니다. 13,2 GAAP (일반적으로 허용되는 회계 원칙)를 준수해야하는 경우 다음을 사용하십시오. 13,4
일반적으로 산출물을 13,2로 반올림하기 전에 13,4의 금액을 합산해야합니다.
답변
실제로 이것은 프로그래머의 선호에 달려 있습니다. 나는 개인적으로 사용 numeric(15,4)
을 준수하기 위해 일반적으로 인정되는 회계 원칙 ( GAAP ) .
답변
사용해보십시오
Decimal(19,4)
이것은 일반적으로 다른 모든 DB에서도 작동합니다.