【问题标题】:SQL decimal equivalent in .NET.NET 中的 SQL 十进制等效项
【发布时间】:2011-10-06 12:55:10
【问题描述】:

.NET 中的 SQL (MS SQL Server) Decimal 等价物是什么?

应该是Double、Decimal 还是Float(VB.NET 中的Single)?

【问题讨论】:

  • Decimal 因为Double 可能会降低精度...
  • @Yahia 根据使用情况,十进制可能会丢失精度。主要区别在于 Decimal 是以 10 为底,而 Double 是二进制。 Granted Decimal 通常用于货币工作,因此精度很少成为问题。
  • @DavidHeffernan - 实际上,如果源是 DECIMAL,则转换为 FLOAT 可能会丢失精度。
  • @Dems 如果源是小数点。它会在这里。公平的警察。我只想指出的是,十进制本身并不比浮点具有更高的精度。

标签: .net sql sql-server


【解决方案1】:

.NET 中没有 精确 等效类型,因为 SQL 的小数类型是定点类型,而 .NET 的 System.Decimal 类型是浮点(小数)点类型。

但是,System.Decimal 绝对是最接近的匹配项,通常应该是用来表示存储在 SQL 数据库中的小数列中的值。

【讨论】:

  • Decimal 但是,由于(超过)精度,它不是“常见”类型的四个浮点值。就我个人而言,我更经常使用 Double ......但为了映射相应的值......我想我会使用 Decimals ......
  • @serhio:实际上,我认为大多数商业应用程序可能应该比double 更频繁地使用decimal。精度并不重要——它是数据的性质和类型的 base。如果您要存储人造数量,那么十进制可能是正确的方法。对于高度和宽度等“自然”值,double 更合适。
  • @Jonskeet,你确定吗?本文与你不同:gregs-blog.com/2007/12/10/dot-net-decimal-type-vs-float-type
  • @Johan:文章的哪一部分与我的陈述不同?
  • 我不久前查看了 .net 十进制并找到了这个表:stackoverflow.com/questions/7348593/… 我现在很遗憾没有提供指向我复制粘贴该表的 MS 文章的链接。它说你可以像这样声明小数:Decimal(Int32)
【解决方案2】:

使用Decimal,如this table所示。

【讨论】:

    猜你喜欢
    • 2010-09-18
    • 1970-01-01
    • 2013-04-05
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-13
    • 2022-09-26
    相关资源
    最近更新 更多