SQL Server自动舍入?

Rou*_*hof 2 sql sql-server rounding

我对以下结果感到困惑:

PRINT 3.1415926535897931 /180
Run Code Online (Sandbox Code Playgroud)

控制台结果= 0.01745329251994329500

DECLARE @whatTheHell float(53)
SET @whatTheHell  = 3.1415926535897931/180
PRINT @whatTheHell 
Run Code Online (Sandbox Code Playgroud)

控制台结果= 0.0174533

我不明白,因为提到这个:

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

Sql Server Float应该等同于c#double.但是当我在c#中计算时:

double hellYeah = 3.1415926535897931 /180;
Run Code Online (Sandbox Code Playgroud)

我得到0.017453292519943295 ......

Ale*_*lli 7

我认为你会PRINT因为使用STR函数的默认设置隐式将数字转换为字符这一事实而感到困惑- 长度为10(参见MSDN).试试PRINT STR(@wth, 20, 16),你可能会更快乐.