FLOAT 데이터 유형에 저장된 일부 데이터를 INT 데이터 유형에 저장된 데이터로 변환하는 데 문제가 있습니다.SQL FLOAT를 SQL 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)
원하는 결과는 다음과 같습니다 다음 @data
테이블에서 나올 때 ID = 1 VALUE = 15662
이 그러나, 나는이 얻을하지 않는 것 아래의 예는 내 문제를 보여줍니다. 나는 대신에 ID = 1 VALUE = 15661.
이것이 누구인지 아는 사람이 있습니까? 플로트 뉘앙스 같아요. 그러나 나는 위와 같은 것에 문제가있을 것이라고는 생각하지 못했습니다. 어떤 아이디어? 귀하의 도움에 미리 감사드립니다.
ROUND (weight * 1000000.0, 0)는 어떤 시스템 작성자가 사용하는지 잘 모르기 때문에 더 좋을 것입니다. – Lex