我在C#
中有几个属性是double
,我想将它们存储在SQL Server的一个表中,但注意到没有double
类型,所以最好使用decimal
还是float
?
这将存储纬度和经度值,所以我需要最精确的精度.
感谢您到目前为止的回复.
我在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...