tipos tipo texto tamaño para los enteros describa datos dato brevemente basicos c# sql-server-2005

texto - ¿Cuál es el tipo de datos equivalente de Numérico de SQL Server en C#



tipos de datos enteros sql server (3)

En SQL Server podemos escribir datos AS Numeric(15,10) ... ¿cuál será el equivalente de esto en C #?

Sé que el equivalente de Numeric es Decimal pero ¿cómo representar Numeric(15,10) ?


Intente mirar este sitio como una guía para las asignaciones de tipos de datos. En cuanto a la precisión y la longitud, usted mismo puede controlar el uso de especificadores de formato


No hay un equivalente directo, en el sentido de que no hay tipos incorporados de .NET que le permitan especificar la precisión / escala explícitamente, que yo sepa. No hay un tipo de punto fijo como NUMERIC.

decimal y double son los tipos de punto flotante común en .NET, con punto flotante decimal implementa decimal (como NUMERIC en T-SQL) y double comportamiento de coma flotante binario (como FLOAT y REAL en T-SQL). (También hay float , que es un tipo de punto flotante binario más pequeño).

Debe elegir entre el decimal y el double función de los valores que va a representar: normalmente pienso que los valores artificiales "hechos por el hombre" (particularmente el dinero) son apropiados para los valores naturales decimal y continuos (como las dimensiones físicas) ) como apropiado para el double .


Hay dos respuestas dependiendo de dos preguntas:

1) ¿Qué es algo que le permite especificar la precisión y la escala? Nada. Esta parece ser su pregunta, pero por las dudas:

2) ¿Qué es algo que le permite especificar un número de coma flotante decimal exactamente ? De hecho, este es el tipo de Decimal, pero el punto es interno y está configurado en una de las 2 ^ 32 posiciones basadas en el número de entrada. No estoy seguro por qué, pero solo funcionan 28 valores, o 2 ^ 5 - 4.

Así que aunque .Net permite que el decimal parezca un flotante, es muy diferente bajo las coberturas y coincide con el decimal de SQLServer. Cualquier cosa que no sea una suma de potencia distinta de 2 valores es una estimación usando el punto flotante binario normal. Esto significa que incluso algo como el número 0.1 ya perdió precisión. Pero no con el tipo Decimal.