У меня возникли проблемы с преобразованием некоторых данных, хранящихся в типе данных 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.
У кого-нибудь есть идеи, почему это так?Я предполагаю, что это какой-то нюанс поплавка.Но я никогда не думал, что это будет иметь проблемы с чем-то вроде выше.Есть идеи?Заранее спасибо за помощь.