【发布时间】:2013-10-09 20:59:40
【问题描述】:
我使用的是 SQL Server 2008。
在从 .NET 网站检索数据后,我试图留下数字而不进行四舍五入。
比如我从网站上得到的号码是10.7658234
我想将数字保留为10.76,而不是四舍五入为10.77。
目前,SQL Server 中的数据类型为numeric(11,2)。
我该怎么做?
谢谢。
【问题讨论】:
标签: sql sql-server-2008 tsql
我使用的是 SQL Server 2008。
在从 .NET 网站检索数据后,我试图留下数字而不进行四舍五入。
比如我从网站上得到的号码是10.7658234
我想将数字保留为10.76,而不是四舍五入为10.77。
目前,SQL Server 中的数据类型为numeric(11,2)。
我该怎么做?
谢谢。
【问题讨论】:
标签: sql sql-server-2008 tsql
如果您需要在 SQL 中截断,ROUND 有一个可选的第三个参数,您可以使用它来截断而不是舍入:
SELECT ROUND(10.7658234,2,1) -- 10.76
如果您需要在 SQL 之前截断 (例如,如果数字作为具有 2 位精度的命令参数传递),则需要更改设置参数的代码进行截断。由于您没有指定 如何,这是在通用 C# 代码中完成的方式:
double val = 10.7658234;
val = Math.Truncate(val * 100) / 100;
【讨论】:
Numeric(11,2),因此在到达 UPDATE 之前将四舍五入为 2 位。因此,除非有办法改变我不知道的行为,否则它需要在应用层进行更改。