Sự khác biệt giữa độ chính xác và quy mô là gì?


141

Sự khác biệt giữa độ chính xác và quy mô trong Oracle là gì? Trong hướng dẫn, họ thường để trống tỷ lệ và đặt độ chính xác thành 6 khi tạo khóa chính.

Làm gì chính xác và quy mô đứng cho?

Câu trả lời:


203

Độ chính xác 4, tỷ lệ 2: 99,99

Độ chính xác 10, tỷ lệ 0: 9999999999

Chính xác 8, tỷ lệ 3: 99999.999

Độ chính xác 5, tỷ lệ -3: 99999000


15
bạn có thể vui lòng giải thích hành vi của quy mô tiêu cực?
Geek

2
trông giống như vòng / bỏ qua rằng nhiều giá trị nguyên còn lại của số thập phân
JDPeckham

3
Hãy nhớ rằng độ chính xác luôn bao gồm phần tỷ lệ. ví dụ: Độ chính xác 4, thang 2 - sẽ không thành công bất kỳ số nào> 99.9999 ..; thử: chọn cast (99.99999 là SỐ (4.2)) từ kép; //ĐỒNG Ý; chọn cast (100,9 là SỐ (4.2)) từ kép; //THẤT BẠI;
Jama Djafarov

@JamaDjafarov 99.99999 không thành công như có thể thấy bên dưới: `21:53:54 CB900 @ XYZ> chọn cast (99.99999 là SỐ (4.2)) từ kép; chọn cast (99.99999 là SỐ (4.2)) từ dual * ERROR ở dòng 1: ORA-01438: giá trị lớn hơn độ chính xác được chỉ định cho phép đối với cột này 21:52:32 CB900 @ ASCEND1> chọn phiên bản từ v $ dụ; PHIÊN BẢN ------------------------------------------------- - 12.1.0.2.0 `
Phalgun

@Phalgun chọn cast (99.9999 là SỐ (4.2)) từ DUAL; là một ví dụ tồi bởi vì việc cắt bớt sẽ làm tròn số từ 99 đến 100, quá lớn so với SỐ (4.2). Hãy thử chọn cast (88.8888 là SỐ (4.2)) từ DUAL; thay vào đó để xem phản hồi là 88,89.
tuyệt vời

58

Độ chính xác là số chữ số có nghĩa. Oracle đảm bảo tính di động của các số với độ chính xác từ 1 đến 38.

Tỷ lệ là số chữ số ở bên phải (dương) hoặc trái (âm) của dấu thập phân. Thang đo có thể dao động từ -84 đến 127.

Trong trường hợp của bạn, ID có độ chính xác 6 có nghĩa là nó sẽ không chấp nhận một số có 7 chữ số quan trọng trở lên.

Tài liệu tham khảo:

http://doad.oracle.com/docs/cd/B28359_01/server.111/b28318/datatype.htmlm#CNCPT1832

Trang đó cũng có một số ví dụ sẽ khiến bạn hiểu độ chính xác và tỷ lệ.


1
điều đó có nghĩa là số gỗ cuối cùng sẽ là 1000000?
dùng700792

9
+1: Tôi nghĩ rằng chìa khóa để hiểu điều này là hiểu định dạng số nội bộ - mantissa và số mũ. Độ chính xác đặt giới hạn về độ dài có thể của lớp phủ và tỷ lệ đặt giới hạn về số mũ tối thiểu có thể có.
David Aldridge

@DavidAldridge Tôi lặp lại với bạn. Tôi nghĩ bạn nên xem xét việc đăng nó như một câu trả lời liên quan đến mantissa và số mũ. Một số thực sự được lưu trữ trong một định dạng chiều dài thay đổi.
Lalit Kumar B

55

Độ chính xác là tổng số chữ số, có thể nằm trong khoảng từ 1 đến 38.
Tỷ lệ là số chữ số sau dấu thập phân, cũng có thể được đặt thành âm cho làm tròn.

Ví dụ:
SỐ (7,5): 12.12345
SỐ ( 5.0 ): 12345

Thêm chi tiết trên trang web ORACLE:
https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htmlm#CNCPT1832


Và Tỷ lệ là số chữ số ở bên phải (dương) hoặc trái (âm) của dấu thập phân, không chỉ sau dấu thập phân.
Lalit Kumar B

Nhìn vào ví dụ của koljaTM. Độ chính xác là có bao nhiêu chữ số có nghĩa, có thể có một giá trị (nghĩa là không chỉ "0" là chủ sở hữu địa điểm). Tỷ lệ cho biết những người rơi như thế nào đối với dấu thập phân. Tỷ lệ có thể âm, cho biết độ chính xác TRÊN 0 mà bạn không quan tâm. SỐ (1, -4): chỉ cho phép 10 giá trị: 00000, 10000, 20000 ... 90000
gordon

1
Độ chính xác KHÔNG CHỈ LÀ tổng số chữ số. Như David Aldridge đã giải thích trong bình luận của mình cho manojlds, đó là câu thần chú - bạn quan tâm đến bao nhiêu chữ số. Quy mô được coi là số mũ là một lời giải thích chính xác hơn, mặc dù bí truyền. Bất kỳ thang âm nào sẽ không có chữ số sau dấu thập phân và sẽ có nhiều số 0 làm chủ sở hữu vị trí ở bên trái dấu thập phân. SỐ (1, -4) sẽ có 5 chữ số, nhưng chỉ đầu tiên, ở vị trí 10.000 sẽ có giá trị bạn quan tâm.
gordon

34

Có thể rõ ràng hơn:

Lưu ý rằng độ chính xác là tổng số chữ số, tỷ lệ bao gồm

SỐ (Chính xác, Tỷ lệ)

Chính xác 8, tỷ lệ 3: 87654.321

Độ chính xác 5, tỷ lệ 3: 54.321

Độ chính xác 5, tỷ lệ 1: 5432.1

Độ chính xác 5, tỷ lệ 0: 54321

Độ chính xác 5, tỷ lệ -1: 54320

Độ chính xác 5, tỷ lệ -3: 54000


19

Tỷ lệ là số chữ số sau dấu thập phân (hoặc dấu hai chấm tùy theo miền địa phương của bạn)

Độ chính xác là tổng số chữ số có nghĩa

thang đo độ chính xác VS


1

độ chính xác: Tổng số chữ số trước hoặc sau điểm cơ số. EX: 123.456 ở đây độ chính xác là 6.

Tỷ lệ: Tổng số chữ số sau điểm cơ số. EX: 123.456 tại đây Scaleis 3


-5

Nếu giá trị là 9999.988 và Độ chính xác 4, tỷ lệ 2 thì có nghĩa là 9999 (nó đại diện cho độ chính xác) .99 (tỷ lệ là 2 vì vậy .988 được làm tròn thành 0,99)

Nếu giá trị là 9999.9887 và độ chính xác là 4, tỷ lệ là 2 thì có nghĩa là 9999,99


7
Không, độ chính xác là số chữ số có nghĩa để lưu trữ. Trong cả hai trường hợp của bạn, độ chính xác được lưu trữ là 6 và thang đo là 2.
David Aldridge
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.