【发布时间】:2011-05-22 20:56:18
【问题描述】:
我在将存储在 FLOAT 数据类型中的一些数据转换为存储在 INT 数据类型中的数据时遇到了一些问题。下面的例子说明了我的问题:
DECLARE @data TABLE
(
id INT,
weight FLOAT
)
INSERT INTO @data VALUES(1,0.015662)
SELECT CAST(weight * 1000000 AS INT) FROM @data
SELECT 0.015662 * 1000000
SELECT CAST(0.015662 * 1000000 AS INT)
期望的结果是:ID = 1 VALUE = 15662
但是,当来自@data 表时,我似乎不明白这一点。我反而得到ID = 1 VALUE = 15661.
有人知道这是为什么吗?我猜这是某种浮动的细微差别。但我从没想过它会像上面那样有问题。有任何想法吗?提前感谢您的帮助。
【问题讨论】:
标签: sql casting floating-point integer