Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Przybliżona liczba typów danych do użycia z danymi liczbowymi zmiennoprzecinkowych. Dane zmiennoprzecinkowe są przybliżone; dlatego nie wszystkie wartości w zakresie typów danych mogą być reprezentowane dokładnie. Synonim ISO dla rzeczywistej jest float(24).
Transact-SQL konwencje składni
Syntax
float [ (n) ] Gdzie n jest liczbą bitów używanych do przechowywania mantysy liczby zmiennoprzecinkowej w notacji naukowej, a zatem określa precyzję i rozmiar magazynu. Jeśli parametr n jest określony, musi być wartością z zakresu od 1 do 53. Wartość domyślna n to 53.
| Wartość n | Precision | Rozmiar magazynu |
|---|---|---|
| 1-24 | 7 cyfr | 4 bajty |
| 25-53 | 15 cyfr | 8 bajtów |
Note
Program SQL Server traktuje n jako jedną z dwóch możliwych wartości. Jeśli wartość 1<=n<=24, n jest traktowana jako 24. Jeśli wartość 25<=n<=53, n jest traktowana jako 53.
Typ danych float[(n)] programu SQL Server jest zgodny ze standardem ISO dla wszystkich wartości n z zakresu od 1 do 53. Synonimem podwójnej precyzji jest float(53).
Remarks
| Typ danych | Range | Magazyn |
|---|---|---|
| float | - 1,79E+308 do -2.23E-308, 0 i 2.23E-308 do 1.79E+308 | Zależy od wartości n |
| real | - 3,40E + 38 do -1,18E - 38, 0 i 1,18E - od 38 do 3,40E + 38 | 4 bajty |
Typy danych zmiennoprzecinkowych i rzeczywistych są znane jako przybliżone typy danych. Zachowanie liczby zmiennoprzecinkowej i rzeczywistej jest zgodne ze specyfikacją IEEE 754 w przypadku przybliżonych typów danych liczbowych. Aby dowiedzieć się, jak kompilator microsoft Visual C (MSVC) używa standardu IEEE 754, zobacz IEEE Floating-Point Reprezentacja
Przybliżone typy danych liczbowych nie przechowują dokładnych wartości określonych dla wielu liczb; przechowują bliskie przybliżenie wartości. W przypadku niektórych aplikacji niewielka różnica między określoną wartością a przechowywanym przybliżeniem nie jest odpowiednia. Dla innych jednak różnica jest ważna. Ze względu na przybliżony charakter typów danych zmiennoprzecinkowych i rzeczywistych nie używaj tych typów danych, gdy wymagane jest dokładne zachowanie liczbowe. Przykłady, które wymagają dokładnych wartości liczbowych, to dane finansowe lub biznesowe, operacje obejmujące zaokrąglanie lub kontrole równości. W takich przypadkach użyj typów danych liczb całkowitych, dziesiętnych, liczbowych, pieniężnych lub małych.
Unikaj używania kolumn zmiennoprzecinkowych lub rzeczywistych w warunkach wyszukiwania klauzul WHERE, zwłaszcza operatorów = i <> . Najlepiej ograniczyć liczby zmiennoprzecinkowe i rzeczywiste kolumny do > lub < porównania.
Konwertowanie danych zmiennoprzecinkowych i rzeczywistych
Wartości zmiennoprzecinkowych są obcinane, gdy są konwertowane na dowolny typ liczb całkowitych.
Jeśli chcesz przekonwertować dane z liczby zmiennoprzecinkowej lub rzeczywistej na dane znaków, użycie funkcji ciągu STR jest zwykle bardziej przydatne niż CAST( ). Przyczyną jest to, że funkcja STR() zapewnia większą kontrolę nad formatowaniem. Aby uzyskać więcej informacji, zobacz STR (Transact-SQL) i Functions (Transact-SQL).
Przed programem SQL Server 2016 (13.x) konwersja wartości zmiennoprzecinkowych na liczbę dziesiętną lub liczbową jest ograniczona do wartości tylko dokładności 17 cyfr. Każda wartość zmiennoprzecinkowa mniejsza niż 5E-18 (w przypadku ustawienia przy użyciu notacji naukowej 5E-18 lub notacji dziesiętnej 0,000000000000000005) zaokrągla do 0. Nie jest to już ograniczenie programu SQL Server 2016 (13.x).