몇 가지 좋은 옵션을 알고 있습니다 .
센트 또는 10 - n 센트 를 나타내는 큰 정수 (예 : int64_t, mpz_t, 모든 bignum lib ) -정수는 1 페니의 1/100을 나타냅니다 ($ 1.05 == 10500). 이것을 스케일 정수 라고합니다 .
Java의 BigDecimal , Python의 Decimal, Javascript의 decimal.js, C ++의 boost :: multiprecision 과 같은 임의의 정밀도 10 진수 산술을위한 고급 라이브러리
문자열.
압축 BCD (이진 코드 10 진수)는 구식 소프트웨어에서 널리 사용되는 좀 더 난해한 방법입니다. 그것에 대해 더 읽어보십시오 .
은행 (또는 신용 카드, ATM, POS 시스템)의 생산 코드에서 실제로 어떤 데이터 유형이 가장 많이 사용됩니까? 저는 특히 은행에서 일하는 사람들에게 묻습니다.
편집 : 동일한 문제 도메인을 가진 사람들을위한 매우 유용한 링크 (깨지지 않는 "돈"데이터 구조를 구현해야 함).
- http://martinfowler.com/eaaDev/quantity.html
- http://www.codeproject.com/Articles/28244/A-Money-type-for-the-CLR
- http://c2.com/cgi/wiki?MoneyObject
- http://www.setfiremedia.com/blog/7-top-tips-for-coding-with-currency
- http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
이것이 중복 된 질문이라고 말하는 다른 사람에 대한 편집 : 이것은 "최고의 것"에 대한 이론적 인 질문이 아닙니다. 내 질문의 수정되지 않은 제목을 읽으십시오. 은행 코드베이스에서 사람들이 직접 본 것을 묻습니다.
나는 BigDecimal이 분명히 "최고"라는 것을 알고 있지만, 그와 같은 멋진 API는 모든 곳에서 사용할 수 없으며 믿거 나 말거나 소수 라이브러리는 int와 달리 비싸다.