我在C#中有几个属性是double,我想将它们存储在SQL Server的一个表中,但注意到没有double类型,所以最好使用decimal还是float

这将存储纬度和经度值,所以我需要最精确的精度.

感谢您到目前为止的回复.

推荐答案

float

或者,如果你想上老派学校:

real

也可以使用float(53),但它的意思与float相同.

("real"相当于float(24),而不是float/float(53).)

decimal(x,y) SQL Server类型适用于需要exact个十进制数而不是浮点数(可以是近似值)的情况.这与C#"decimal"数据类型形成对比,后者更像是一个128位的浮点数.

MSSQL的float类型相当于中的64位double类型.网(我2011年的原始答案是尾数可能略有不同,但我在2020年对此进行了测试,它们在非常小和非常大的数字的二进制表示中似乎是https://dotnetfiddle.net/wLX5Ox%兼容的——我的测试见https://dotnetfiddle.net/wLX5Ox).

更让人困惑的是,C#中的"float"只有32位,因此在SQL中,它比float/float(53)更等同于MSSQL中的real/float(24)类型.

In your specific use case...

Sql相关问答推荐

Oracle SQL中的累计总数

Microsoft Access UNION将长文本字段限制为255个字符

使用SQL旋转表的列(Snowflake)

SQL使最终结果显示两个表后的所有数据(匹配和不匹配)?

编写一个SQL查询来返回收视率较高的类型,并取这些收视率的平均值,我该如何做呢?

从数据库中查找总和大于或等于查询中的数字的数字

从包含PostgreSQL中的JSON值的列中提取列表或目录

从JSON值数组创建扁平数组Athena

根据日期 Select ID 的上一条记录

使用 SQL 将列添加到 Access 数据库时出错

YEAR 函数仍然不可SARGable 吗?

连续天跟踪购买情况(将标记返回到另一列?)

匹配 H[0-9][0-9] 但不匹配除字母 H 之外的任何字母

SQL 查询是否返回列表中仅包含某些值而不包含其他值的行?

Oracle 21c 中的递归查询回顾过go 3 周

比使用NOT EXISTS更高效的SQL删除方法是什么?

我如何编写一个遍历数组数组并将所有值连接成一个字符串的 postgres 函数

连接表时避免重复

交叉应用 OPENJSON / PIVOT - 错误的顺序

包含多行的 SQL 查询