sql >> Base de Datos >  >> RDS >> Sqlserver

¿Qué representa un doble en el servidor sql?

float

O si quieres ir a la vieja escuela:

real

También puede usar float(53), pero significa lo mismo que float.

("real" es equivalente a float(24), no float/float(53).)

El decimal(x,y) El tipo de SQL Server es para cuando desea exacto números decimales en lugar de coma flotante (que pueden ser aproximaciones). Esto contrasta con el tipo de datos "decimal" de C#, que se parece más a un número de punto flotante de 128 bits.

flotante de MSSQL type es equivalente al doble de 64 bits escriba .NET. (Mi respuesta original de 2011 decía que podría haber una ligera diferencia en la mantisa, pero probé esto en 2020 y parecen ser 100% compatibles en su representación binaria de números muy pequeños y muy grandes; consulte https:/ /dotnetfiddle.net/wLX5Ox para mi prueba).

Para hacer las cosas más confusas, un "flotador" en C# es solo de 32 bits, por lo que sería más equivalente en SQL al tipo real/float(24) en MSSQL que float/float(53).

En su caso de uso específico... Todo lo que necesita son 5 lugares después del punto decimal para representar la latitud y la longitud con una precisión de aproximadamente un metro, y solo necesita hasta tres dígitos antes del punto decimal para los grados. Float(24) o decimal(8,5) se adaptarán mejor a sus necesidades en MSSQL, y usar float en C# es lo suficientemente bueno, no necesita el doble. De hecho, sus usuarios probablemente le agradecerán por redondear a 5 decimales en lugar de tener un montón de dígitos insignificantes para el viaje.