DECLARE @f AS FLOAT = '29545428.022495';
SELECT CAST(@f AS NUMERIC(28, 14)) AS value;
29545428.02249500200000
今天我读过这个例子。我理解浮点数的问题,但不理解这个转换的结果。它是如何工作的?
首先,我们可以在第一行替换varchar,结果将是相同的。
DECLARE @f AS FLOAT = 29545428.022495;
其次,我认为问题在于铸造。请尝试以下代码。
DECLARE @f AS FLOAT = 29545428.022495;
select @f - 29545428;
0,0224950015544891
最后可能是002
的原因。
它适用于其他数字。
好的,我想我是以错误的方式理解它。 Here是一个相关的问题和答案。