A BigDecimal
được xác định bởi hai giá trị: số nguyên chính xác tùy ý và số nguyên 32 bit tỷ lệ. Giá trị của BigDecimal
được xác định là .
chính xác:
Các precision là số chữ số trong giá trị chưa định tỷ lệ. Ví dụ, đối với số 123,45, độ chính xác trở lại là 5.
Vì vậy, chính xác chỉ ra chiều dài của số nguyên có độ chính xác tùy ý. Dưới đây là một vài ví dụ về số với quy mô tương tự, nhưng độ chính xác khác nhau:
- 12345/100000 = 0,12345 // quy mô = 5, độ chính xác = 5
- 12340/100000 = 0,1234 // quy mô = 5, chính xác = 4
- 1/100000 = 0,00001 // quy mô = 5, độ chính xác = 1
Trong trường hợp đặc biệt mà số là bằng không (tức là 0,000), độ chính xác luôn là 1.
Quy mô:
Nếu không hay tích cực, scale là số chữ số bên phải dấu thập phân. Nếu âm, giá trị unscaled của số được nhân với mười đến sức mạnh của sự phủ định của thang đo. Ví dụ: thang tỷ lệ -3 có nghĩa là giá trị chưa được đánh số nhân với 1000.
Điều này có nghĩa là giá trị nguyên của ‘BigDecimal’ được nhân với .
Dưới đây là một vài ví dụ về độ chính xác tương tự, với quy mô khác nhau:
- 12345 với quy mô 5 = 0,12345
- 12345 với quy mô 4 = 1,2345
- ...
- 12345 với quy mô 0 = 12345
- 12345 với tỷ lệ -1 = 123450 †
BigDecimal.toString:
Phương pháp toString
cho một BigDecimal
xử lý khác nhau dựa trên quy mô và precision
. (Cảm ơn @RudyVelthuis vì đã chỉ ra điều này.)
- Nếu số
scale == 0
, số nguyên chỉ được in ra, nguyên trạng.
- Nếu
scale < 0
, E-Notation luôn được sử dụng (ví dụ 5 quy mô sản xuất -1 "5E + 1")
- Nếu
scale >= 0
và precision - scale -1 >= -6
một số thập phân đơn giản được tạo ra (ví dụ 10000000 tỷ lệ 1 sản xuất "1.000.000,0")
- Nếu không, ký hiệu điện tử sẽ được sử dụng, ví dụ 10 thang 8 tạo ra "1.0E-7" từ
precision - scale -1
bằng nhỏ hơn -6.
Thêm ví dụ:
- 19/100 = 0,19 // integer = 19, quy mô = 2, độ chính xác = 2
- 1/1000 = 0,0001 // integer = 1, quy mô = 4, độ chính xác = 1
Nguồn
2016-02-16 15:47:20
Câu hỏi hoàn toàn không có gì với 'java.math.BigDecimal'. '@ javax.persistence.Column' không phải là một phần của Java SE. Đó là chủ đề của JPA. – Tiny
Độ chính xác và tỷ lệ là các thuật ngữ thường được sử dụng cho java.math.BigDecimal, đó là những gì anh ta sử dụng để tính toán, ví dụ với JPA. ISTM anh ta hoặc cô ấy muốn biết những gì họ có ý nghĩa trong bối cảnh của BigDecimal alright. –