Hướng dẫn float 10 2 mysql - float 10 2 mysql

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ố.


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 FLOAT0 và FLOAT1 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, FLOAT1 được triển khai là FLOAT0, vì vậy các nhận xét sau đây về FLOAT0 áp dụng như nhau cho FLOAT1.

MySQL lưu trữ các giá trị FLOAT0 ở đị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 FLOAT0, độ chính xác và tỷ lệ có thể (và thường là) được chỉ định. Ví dụ:

salary DECIMAL(5,2)

Trong ví dụ này, FLOAT8 là độ chính xác và FLOAT9 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 FLOAT0 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 FLOAT1 từ FLOAT2 đến FLOAT3.

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 FLOAT0 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 FLOAT0 này. Giá trị mặc định của FLOAT7 là 10.DECIMAL(FLOAT7) is equivalent to DECIMAL(FLOAT7,0). Similarly, the syntax FLOAT0 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 FLOAT0 syntax. The default value of FLOAT7 is 10.

Nếu tỷ lệ là 0, các giá trị FLOAT0 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 FLOAT0 là 65, nhưng phạm vi thực tế cho một cột FLOAT0 đã 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 đó. .


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 (FLOAT(p4, FLOAT(p5, FLOAT0 và FLOAT1), cũng như các loại dữ liệu số gần đúng (FLOAT, FLOAT(p9 và DOUBLE9). Từ khóa FLOAT(p1 là từ đồng nghĩa với FLOAT(p4 và các từ khóa FLOAT(p3 và FLOAT(p4 là từ đồng nghĩa với FLOAT0. 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 FLOAT(p9 là từ đồng nghĩa với DOUBLE9 (biến thể không đạt tiêu chuẩn), trừ khi chế độ FLOAT0 SQL được bật.

Kiểu dữ liệu FLOAT1 lưu trữ các giá trị bit và được hỗ trợ cho các bảng FLOAT2, FLOAT3, FLOAT4 và FLOAT5.

Để 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.