Bagikan melalui


float dan real (Transact-SQL)

Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft Fabric Warehouse di Microsoft Fabric

Perkiraan jenis data angka untuk digunakan dengan data numerik titik float. Data titik mengambang adalah perkiraan; oleh karena itu, tidak semua nilai dalam rentang jenis data dapat diwakili dengan tepat. Sinonim ISO untuk nyata adalah float(24).

Konvensi sintaks transact-SQL

Sintaks

float [ (n) ] Di mana n adalah jumlah bit yang digunakan untuk menyimpan mantissa angka float dalam notasi ilmiah dan, oleh karena itu, menentukan presisi dan ukuran penyimpanan. Jika n ditentukan, nilainya harus antara 1 dan 53. Nilai default n adalah 53.

n nilai Presisi Ukuran penyimpanan
1-24 7 digit 4 byte
25-53 15 digit 8 byte

Catatan

SQL Server memperlakukan n sebagai salah satu dari dua nilai yang mungkin. Jika 1<=n<=24, n diperlakukan sebagai 24. Jika 25<=n<=53, n diperlakukan sebagai 53.

Jenis data float SQL Server[(n)] mematuhi standar ISO untuk semua nilai n dari 1 hingga 53. Sinonim untuk presisi ganda adalah float(53).

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Keterangan

Jenis Data Rentang Penyimpanan
float - 1,79E+308 ke -2,23E-308, 0 dan 2,23E-308 hingga 1,79E+308 Tergantung pada nilai n
real - 3,40E + 38 hingga -1,18E - 38, 0 dan 1,18E - 38 hingga 3,40E + 38 4 Byte

Jenis data float dan riil dikenal sebagai perkiraan jenis data. Perilaku float dan nyata mengikuti spesifikasi IEEE 754 pada perkiraan jenis data numerik. Untuk memahami bagaimana kompilator Microsoft Visual C (MSVC) menggunakan standar IEEE 754, lihat Representasi IEEE Floating-Point

Perkiraan jenis data numerik tidak menyimpan nilai yang tepat yang ditentukan untuk banyak angka; mereka menyimpan perkiraan nilai yang dekat. Untuk beberapa aplikasi, perbedaan kecil antara nilai yang ditentukan dan perkiraan tersimpan tidak relevan. Namun, bagi orang lain, perbedaannya penting. Karena perkiraan sifat float dan jenis data nyata, jangan gunakan jenis data ini ketika perilaku numerik yang tepat diperlukan. Contoh yang memerlukan nilai numerik yang tepat adalah data keuangan atau bisnis, operasi yang melibatkan pembulatan, atau pemeriksaan kesetaraan. Dalam kasus tersebut, gunakan jenis data bilangan bulat, desimal, numerik, uang, atau smallmoney.

Hindari menggunakan kolom float atau nyata dalam kondisi pencarian klausa WHERE, terutama operator = dan <> . Yang terbaik adalah membatasi float dan kolom nyata ke > atau < perbandingan.

Mengonversi float dan data nyata

Nilai float dipotong saat dikonversi ke jenis bilangan bulat apa pun.

Ketika Anda ingin mengonversi dari data float atau nyata ke karakter, menggunakan fungsi string STR biasanya lebih berguna daripada CAST( ). Alasannya adalah bahwa STR() memungkinkan lebih banyak kontrol atas pemformatan. Untuk informasi selengkapnya, lihat STR (Transact-SQL) dan Functions (Transact-SQL).

Sebelum SQL Server 2016 (13.x), konversi nilai float ke desimal atau numerik dibatasi hanya untuk nilai presisi 17 digit. Setiap nilai float kurang dari 5E-18 (ketika diatur menggunakan notasi ilmiah 5E-18 atau notasi desimal 0,0000000000000000005) membulatkan ke bawah ke 0. Ini bukan lagi pembatasan pada SQL Server 2016 (13.x).