【发布时间】:2020-10-16 17:26:49
【问题描述】:
我将值 1555.4899999999998 存储在 float 列中,默认精度 (53)。当我做一个简单的select 时,SSMS 会舍入输出而不是用所有可用的精度打印它。最近这给我造成了一些问题,因为打印的值不能作为 float 文字来匹配实际存储的值。
例如(请注意,这两个数字在默认 float 中都有精确的表示),
declare @f1 float;
declare @f2 float;
set @f1 = 1555.49;
set @f2 = 1555.4899999999998;
select @f1, @f2;
select STR(@f1,30,15), STR(@f2,30,15);
输出:
1555.49 1555.49
1555.490000000000000 1555.489999999999800
在查询分析器中,第一个 select 输出:
1555.49 1555.4899999999998
这就是我想从 Management Studio 获得的行为。有没有办法防止 SSMS 在其结果显示中四舍五入?
【问题讨论】:
标签: sql-server floating-point ssms