Hướng dẫn big float mysql - mysql nổi lớn

11.1.4 & NBSP; Các loại điểm nổi (giá trị gần đúng) - Float, Double

Các loại FLOATDOUBLE biểu thị các giá trị dữ liệu số gần đúng. MySQL sử dụng bốn byte cho các giá trị chính xác đơn và tám byte cho các giá trị chính xác kép.

Đối với FLOAT, tiêu chuẩn SQL cho phép một đặc tả tùy chọn của độ chính xác (nhưng không phải là phạm vi của số mũ) trong các bit theo từ khóa FLOAT trong ngoặc đơn, nghĩa là FLOAT(p). MySQL cũng hỗ trợ đặc tả độ chính xác tùy chọn này, nhưng giá trị chính xác trong FLOAT(p) chỉ được sử dụng để xác định kích thước lưu trữ. Độ chính xác từ 0 đến 23 dẫn đến cột FLOAT chính xác đơn 4 byte. Độ chính xác từ 24 đến 53 dẫn đến cột DOUBLE chính xác kép 8 byte.

MySQL cho phép cú pháp không tiêu chuẩn: ________ 9, ________ 10) hoặc ________ 11, ________ 10) hoặc ____ 13, ________ 10). Ở đây, ________ 15, ____ 10) có nghĩa là các giá trị có thể được lưu trữ với tổng số FLOAT7 chữ số, trong đó FLOAT0 chữ số có thể là sau điểm thập phân. Ví dụ: một cột được xác định là FLOAT9 được hiển thị là DOUBLE0. MySQL thực hiện làm tròn khi lưu trữ các giá trị, vì vậy nếu bạn chèn DOUBLE1 vào cột FLOAT9, kết quả gần đúng là DOUBLE3.

Kể từ MySQL 8.0.17, cú pháp không đạt tiêu chuẩn ____ 9, ____ 10) và cú pháp (________ 17, ________ 10) không được chấp nhận và bạn sẽ mong đợi hỗ trợ cho nó sẽ bị xóa trong phiên bản MYSQL trong tương lai.DOUBLE(FLOAT7,FLOAT0) syntax is deprecated and you should expect support for it to be removed in a future version of MySQL.

Bởi vì các giá trị điểm nổi là gần đúng và không được lưu trữ dưới dạng các giá trị chính xác, cố gắng coi chúng là chính xác trong so sánh có thể dẫn đến các vấn đề. Họ cũng phải tuân theo các phụ thuộc nền tảng hoặc thực hiện. Để biết thêm thông tin, xem Phần & NBSP; B.3.4.8, Các vấn đề về các giá trị dấu phẩy động.

Để có tính di động tối đa, mã yêu cầu lưu trữ các giá trị dữ liệu số gần đúng nên sử dụng FLOAT hoặc DOUBLE9 mà không có thông số kỹ thuật về độ chính xác hoặc số chữ số.


MySQL hỗ trợ tất cả các loại dữ liệu số SQL tiêu chuẩn. Các loại này bao gồm các loại dữ liệu số chính xác (FLOAT0, FLOAT1, FLOAT2 và FLOAT3), cũng như các loại dữ liệu số gần đúng (FLOAT, FLOAT5 và DOUBLE9). Từ khóa FLOAT7 là từ đồng nghĩa với FLOAT0 và các từ khóa FLOAT9 và FLOAT0 là từ đồng nghĩa với FLOAT2. MySQL coi DOUBLE là từ đồng nghĩa với DOUBLE9 (một phần mở rộng không đạt tiêu chuẩn). MySQL cũng coi FLOAT5 là từ đồng nghĩa với DOUBLE9 (biến thể không đạt tiêu chuẩn), trừ khi chế độ FLOAT6 SQL được bật.

Kiểu dữ liệu FLOAT7 lưu trữ các giá trị bit và được hỗ trợ cho các bảng FLOAT8, FLOAT9, FLOAT(p0 và FLOAT(p1.

Để biết thông tin về cách MySQL xử lý việc gán các giá trị ngoài phạm vi cho các cột và tràn trong quá trình đánh giá biểu thức, xem Phần & NBSP; 11.1.7, Xử lý ngoài phạm vi và xử lý tràn.

Để biết thông tin về các yêu cầu lưu trữ của các loại dữ liệu số, xem Phần & NBSP; 11.7, Yêu cầu lưu trữ kiểu dữ liệu.

Đối với các mô tả về các hàm hoạt động trên các giá trị số, xem Phần & NBSP; 12.6, các hàm số và toán tử. Kiểu dữ liệu được sử dụng cho kết quả tính toán trên các toán hạng số phụ thuộc vào các loại toán hạng và các hoạt động được thực hiện trên chúng. Để biết thêm thông tin, xem Phần & NBSP; 12.6.1, toán tử số học.


11.1.3 & nbsp; các loại điểm cố định (giá trị chính xác) - thập phân, số

Các loại FLOAT2 và FLOAT3 lưu trữ các giá trị dữ liệu số chính xác. Các loại này được sử dụng khi điều quan trọng là duy trì độ chính xác chính xác, ví dụ với dữ liệu tiền tệ. Trong MySQL, FLOAT3 được triển khai là FLOAT2, vì vậy các nhận xét sau đây về FLOAT2 áp dụng như nhau cho FLOAT3.

MySQL lưu trữ các giá trị FLOAT2 ở định dạng nhị phân. Xem Phần & NBSP; 12,25, Toán học chính xác.

Trong khai báo cột FLOAT2, độ chính xác và tỷ lệ có thể được chỉ định (và thường là) được chỉ định. Ví dụ:

salary DECIMAL(5,2)

Trong ví dụ này, FLOAT(p0 là độ chính xác và FLOAT(p1 là thang đo. Độ chính xác đại diện cho số lượng các chữ số quan trọng được lưu trữ cho các giá trị và tỷ lệ biểu thị số chữ số có thể được lưu trữ theo điểm thập phân.

SQL tiêu chuẩn yêu cầu FLOAT(p2 có thể lưu trữ bất kỳ giá trị nào với năm chữ số và hai số thập phân, do đó, các giá trị có thể được lưu trữ trong phạm vi cột FLOAT(p3 từ FLOAT(p4 đến FLOAT(p5.

Trong SQL tiêu chuẩn, số thập phân cú pháp (____ 17) tương đương với số thập phân (____ 17,0). Tương tự, cú pháp FLOAT2 tương đương với số thập phân (____ ____ 17,0), trong đó việc thực hiện được phép quyết định giá trị của FLOAT7. MySQL hỗ trợ cả hai dạng biến thể của cú pháp FLOAT2 này. Giá trị mặc định của FLOAT7 là 10.DECIMAL(FLOAT7) is equivalent to DECIMAL(FLOAT7,0). Similarly, the syntax FLOAT2 is equivalent to DECIMAL(FLOAT7,0), where the implementation is permitted to decide the value of FLOAT7. MySQL supports both of these variant forms of FLOAT2 syntax. The default value of FLOAT7 is 10.

Nếu tỷ lệ là 0, các giá trị FLOAT2 không chứa phần thập phân hoặc phần phân số.

Số lượng chữ số tối đa cho FLOAT2 là 65, nhưng phạm vi thực tế cho một cột FLOAT2 đã cho có thể bị hạn chế bởi độ chính xác hoặc tỷ lệ cho một cột nhất định. Khi một cột như vậy được gán một giá trị với nhiều chữ số theo điểm thập phân hơn so với được cho phép theo thang đo được chỉ định, giá trị được chuyển đổi thành thang đo đó. .