这个简单的数学结果我应该使用decimal,float还是double?

Pur*_*ome 5 .net floating-point double decimal

我正在做一些非常简单的数学运算并将结果保存到MS SQL2008数据库中.

我正在平均一些数字,这些数字是1 < - > 5之间的字节值.我希望只记录2位小数.我不关心舍入小数点后第二位(例如,1.155 == 1.5或1.6 ..我不是太分阶段).

那么..我应该将平均结果存储为浮点数,小数或双倍?

当我检查LINQ返回的内容时,它可以返回所有三个值!

最后,相关的SQL数据类型字段也是如此.

干杯!

Jon*_*han 2

您需要的是 DECIMAL 数据类型:

declare @val decimal(10,2)
select @val = 10.155
select @val
Run Code Online (Sandbox Code Playgroud)

输入值时,您可以依赖内置舍入,也可以明确决定所需的舍入方式:

select val = round(10.155, 2, 0) -- rounded
select val = round(10.155, 2, 1) -- truncated
Run Code Online (Sandbox Code Playgroud)

小数(10,2)表示可以使用十位数字,其中小数点后取两位。即decimal(4,2) 可以包含的最大数字是99.99。尝试将其设置为 100 将导致算术溢出。