Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm tròn số thập phân trong SQL Server 2008

1) select CAST(FLOOR(2 * 3.69) / 2 AS decimal(2, 1)) xử lý trường hợp đầu tiên - nhờ sự hỗ trợ của câu trả lời cho một câu hỏi tương tự trên Diễn đàn máy chủ SQL , mà tôi đã điều chỉnh và nhanh chóng kiểm tra.

Lưu ý rằng nếu các số bạn làm tròn đến 0.5 gần nhất có thể lớn hơn (ví dụ:333.69 => 333.5 ), hãy nhớ chỉ định thêm decimal độ chính xác khi bạn truyền (ví dụ:select CAST(FLOOR(2 * 3.69) / 2 AS decimal(10, 1)) ), hoặc bạn có thể gặp lỗi tràn:

Msg 8115, Level 16, State 8, Line 1
Arithmetic overflow error converting numeric to data type numeric.

Độ chính xác cao hơn sẽ không ảnh hưởng đến kết quả cuối cùng (tức là select CAST(FLOOR(2 * 3.69) / 2 AS decimal(10, 1))select CAST(FLOOR(2 * 3.69) / 2 AS decimal(2, 1)) cả hai đều mang lại 3.5 ); nhưng thật lãng phí nếu các số bạn làm tròn luôn nhỏ hơn.

Tham khảo trực tuyến với các ví dụ có sẵn cho T-SQL FLOOR , CAST decimal để giúp đỡ.

2) select ROUND(142600, -3) xử lý trường hợp thứ hai.

Tham khảo trực tuyến tương tự có sẵn cho T-SQL ROUND .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo chế độ xem trên nhiều cơ sở dữ liệu

  2. ddmmyyyy thành sql datetime trong SQL

  3. Cách định dạng số dưới dạng tiền tệ trong SQL Server (T-SQL)

  4. Chạy các truy vấn lớn trong MS SQL nền

  5. làm thế nào để bỏ qua một hàng xấu trong nguồn tệp phẳng ssis