如何在SQL服务器上放置双重类型?

时间:2012-07-09 10:52:29

标签: sql sql-server

我需要在SQL Server中存储以下double值:

double x = 52.22105994970536;

我应该使用什么SQL Server数据类型来存储此类型的值。可能是decimalfloat

我不确定这是否相关,但我需要使用.而不是,来存储这些值,以分隔值的小数部分。我应该注意SQL Server中的设置以确保这种情况发生吗?

2 个答案:

答案 0 :(得分:1)

  

我不确定这是否相关,但我需要用a存储这些值。不是,到   分开值的小数部分。有没有设置   我应该注意哪些SQL Server可以确保这种情况发生?

不,完全可以学习编程,直到你意识到这根本不是问题 - 小数存储为小数。 “”或“,”是视觉转换的一部分(“ToString”调用,也就是说)打印值并与值无关。

如果要存储双精度型,则需要存储双精度型。点。如果你想确保你的程序用“。”表示它,然后正确编程UI,但不要用它来打扰SQL Server内部存储。通常它们显示在语言环境中 - 在大多数情况下,它比硬编码更聪明。那么,你可以强制改变UI语言环境吗?或者,每次打印出值时,都要将转换硬编码。

  

我应该使用什么SQL Server数据类型来存储此类型的值。或许十进制或   浮?

http://msdn.microsoft.com/en-us/library/ms187752.aspx

解释了sql server的数据类型。

选择适合您要求的一个。可能是具有给定精度的浮动版本。现在,如果你害怕,因为那些被命名为“近似数字”,请注意双重是一个近似数字,也是在C#(或你使用的任何其他前端语言 - 你没有告诉我们)。

默认推荐映射位于http://msdn.microsoft.com/en-us/library/ms131092.aspx,并指向“浮动”。

答案 1 :(得分:0)

由于Damien_The_Unbeliever声明格式化(好吧应该是无关紧要的)格式化是您为显示,报告等所做的事情。

至于是使用浮点还是定点(十进制),十进制解决了许多问题,如果您用来访问它的语言有十进制类型。如果你将数字作为双精度操作,那么在后端使用十进制将不会给你那么多,因为你仍然会手动处理浮点表示的固有不准确性。