当前位置:  开发笔记 > 数据库 > 正文

.NET Decimal = SQL中的内容?

如何解决《.NETDecimal=SQL中的内容?》经验,为你挑选了2个好方法。

SQL中用于表示.NET中的Decimal的最佳数据类型是什么?

我们希望存储最多9位小数精度的十进制数,并希望避免前端的舍入错误等.

阅读数据类型,在.NET中使用Decimal看起来是最好的选择,因为你不会得到舍入错误,尽管它比Double慢一点.

我们希望将其传递到数据库,并且在通过层移动数据时需要最小的转换问题.有什么建议?



1> Gareth Farri..:

所以我们在SQL Server上做了一些测试.看起来sql类型decimal不能完全存储任何.net十进制.

SQL Server可以存储长度最多为38位的数字.这是小数点左侧和右侧的位数总和.您设置了"缩放",它告诉SQL服务器为小数点右侧的数字保留多少个十进制数字.如果设置了一个刻度,那么它将取消小数点左边的位数.(精度 - 比例=小数点左侧的小数位数)

.NET可以表示小数点右侧最多28位,左侧29位.这将需要SQL Server中的精度为57,但最大可用性为38.

因此,如果您想获得尽可能多的精度并且您的数量足够小,那么您可以这样做:

decimal(38, 28)

那会让你左边有10位数字,右边有28位数字.因此,任何大于9999999999的数字都无法表示,但在进行货币类型交易时,您不会失去精度.

另一方面,如果您的数字非常大,您可以使用此声明存储它们:

decimal(38, 9)

这将允许您存储.net Decimal可以存储的最大数字,长度为29位.它只会给你8个十进制数字的精度.

如果没有一个听起来很吸引人,那么你可以将它们存储为varchar.这将允许您保存任何.net十进制,但它不会让您在SQL中对它们执行任何计算.



2> Galwegian..:

我会在SQL Server中使用十进制类型

看看SQL Server数据类型映射(ADO.NET)

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有