Gönderen online belgeler :
POWER ( float_expression , y )
Argümanlar
float_expression float türünün veya örtük olarak float'a dönüştürülebilecek türün bir ifadesidir
Bunun anlamı, ilk parametre olarak ilettiğiniz her ne olursa olsun , işlev yürütülmeden float(53)
önce örtük olarak a'ya aktarılır. Ancak, bu (her zaman?) Durum değildir .
Durum böyle olsaydı, hassasiyet kaybını açıklardı:
Bilimsel gösterimi kullanan kayan değerlerin ondalık veya sayıya dönüştürülmesi yalnızca 17 basamaklı kesinlik değerleriyle sınırlıdır. Hassasiyeti 17'den yüksek olan herhangi bir değer sıfıra yuvarlar.
Öte yandan değişmez 2.
tiptir numeric
…:
DECLARE @foo sql_variant;
SELECT @foo = 2.;
SELECT SQL_VARIANT_PROPERTY(@foo, 'BaseType');
GO
| (Sütun adı yok) |
| : --------------- |
| sayısal |
dbfiddle burada
… Ve çarpma işleci , daha yüksek önceliğe sahip bağımsız değişkenin veri türünü döndürür .
Görünüşe göre 2016'da (SP1), tüm hassasiyet korunuyor:
SELECT @@version;
GO
| (Sütun adı yok) |
| : ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------- |
| Microsoft SQL Server 2016 (SP1) (KB3182545) - 13.0.4001.0 (X64) <br> 28 Ekim 2016 18:17:30 <br> Telif Hakkı (c) Windows Server'da Microsoft Corporation <br> Express Edition (64 bit) 2012 R2 Standart 6.3 <X64> (Derleme 9600:) (Hipervizör) <br> |
SELECT POWER(2.,64.);
GO
| (Sütun adı yok) |
| : ------------------- |
| 18446744073709551616 |
dbfiddle burada
… Ancak 2014'te (SP2):
SELECT @@version;
GO
| (Sütun adı yok) |
| : ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------------------------ |
| Microsoft SQL Server 2014 (SP2) (KB3171021) - 12.0.5000.0 (X64) <br> 17 Haziran 2016 19:14:09 <br> Telif Hakkı (c) Windows NT üzerinde Microsoft Corporation <br> Express Edition (64-bit) 6.3 <X64> (Derleme 9600:) (Hipervizör) <br> |
SELECT POWER(2.,64.);
GO
| (Sütun adı yok) |
| : ------------------- |
| 18446744073709552000 |
dbfiddle burada