Flutuar no banco de dados? na rede
-
23-08-2019 - |
Pergunta
Se você tem um flutuador no MSSQLServer, para o que você mapeia isso no .NET?
Você pode convertê -lo para dobrar ou perderá números?
Solução
Servidor SQL float
e C#/VB double
tem a mesma representação. Este é o mapeamento correto. O que você não quer fazer é mapear o servidor SQL float
para C#/VB float
como isso pode envolver uma perda de precisão. servidor SQL real
Mapas em C#/VB float
.
Float t-sql e definições de tipo real podem ser encontradas em Msdn. C# A definição dupla pode ser encontrada em Msdn Além disso, como o flutuador pode definição.
Outras dicas
Verificação de saída:
- Tipos de dados do servidor SQL e seus equivalentes .NET Framework (MSDN) Para referência completa sobre mapeamentos de tipo de dados entre SQL Server e .NET
No seu caso, o tipo nativo do SQL Server flutuador Mapas para SQL Server CLR Sqldouble e depois Dobro na rede
Atualização (maio de 2016):
Versão atualizada do documento MSDN: Mapeamento de dados de parâmetros CRL
C# possui um tipo de flutuação, mas será convertido para dobrar bem também.
A partir da minha lembrança, a maioria das ferramentas ORM mapeará para um tipo decimal, que não perderá precisão como um duplo ou flutuador.
Depende do tamanho do flutuador SQL. Para "flutuação" simples, o que é equivalente a flutuar (53), você precisa usar um duplo C#. Para flutuar (24) ou inferior, um flutuador C# será suficiente, ou um duplo também funcionaria.
O código automático gerado pelo Microsoft XSD converte SQL Float (Float padrão) em C# duplo.
Então você pode sugerir que não é um grande erro.
Até você trabalhar com flutuação com tamanho padrão.