2012-11-29 28 views
5

Tôi muốn lưu giá trị của tôi là FLOATS, nhưng khi truy xuất chúng, người dùng có thể chỉ định (và thay đổi khi chạy) bao nhiêu chữ số mà anh muốn xem sau dấu thập phân.CHỌN một FLOAT với độ chính xác đã cho

Tôi có thể chuyển số đó vào số SELECT bằng cách nào đó hoặc tôi có phải làm điều đó trong đơn đăng ký của mình không?

Trả lời

8

Vâng, chỉ cần chỉ định tham số thứ hai cho ROUND()

SELECT ROUND(23.298, <precision>); 

Với điều này, bạn có thể xác định số chữ số bạn muốn để có được trả lại. (bạn thậm chí có thể có giá trị âm, trong trường hợp khô héo, đầu vào được làm tròn thành 10 (-precision)).

Hoặc bạn có thể sử dụng CAST như DECIMAL:

CAST(2.5 AS DECIMAL(20,2)) 

(Lưu ý: sau này sẽ làm việc với các đầu vào văn bản quá, giống như CAST('2.5' AS DECIMAL(20,2)), nhưng trong trường hợp này đó là về nguyên liệu đầu vào FLOAT)

4

sử dụng ROUND() , CEIL() hoặc FLOOR() để thực hiện tương tự và nhận giá trị của đối số thứ hai được chuyển từ người dùng làm đầu vào.

+0

+1, tôi hoàn toàn quên về CEIL và FLOOR! – ppeterka

Các vấn đề liên quan