Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Pembulatan ke bawah angka desimal di SQL Server 2008

1) select CAST(FLOOR(2 * 3.69) / 2 AS decimal(2, 1)) menangani kasus pertama - atas izin jawaban untuk pertanyaan serupa di Forum SQL Server , yang saya adaptasi dan periksa dengan cepat.

Perhatikan bahwa jika angka yang Anda bulatkan ke 0.5 terdekat bisa lebih besar (mis. 333.69 => 333.5 ), pastikan untuk menentukan lebih banyak decimal presisi saat Anda melakukan cast (mis. select CAST(FLOOR(2 * 3.69) / 2 AS decimal(10, 1)) ), atau Anda bisa mendapatkan kesalahan overflow:

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

Presisi ekstra tidak akan mempengaruhi hasil garis bawah (yaitu select CAST(FLOOR(2 * 3.69) / 2 AS decimal(10, 1)) dan select CAST(FLOOR(2 * 3.69) / 2 AS decimal(2, 1)) keduanya menghasilkan 3.5 ); tapi pemborosan jika angka yang dibulatkan selalu lebih kecil.

Referensi online dengan contoh tersedia untuk T-SQL FLOOR , CAST , dan decimal untuk membantu.

2) select ROUND(142600, -3) menangani kasus kedua.

Referensi online serupa tersedia untuk 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. Isi Tanggal yang Hilang untuk Output Kueri SQL Server menggunakan CTE

  2. SQL 2008:Matikan Stop Words untuk Permintaan Pencarian Teks Lengkap

  3. Fitur Tersembunyi dari SQL Server

  4. Bagaimana saya bisa tahu kapan Populasi Indeks Teks Lengkap SQL selesai?

  5. Kunci asing ke kunci komposit