Konvertierung von SQL FLOAT SQL INT, verlorene Daten

Ich habe einige Probleme mit der Konvertierung von einigen Daten, die in einen FLOAT-Datentyp gespeicherten Daten in einem INT-Datentyp. Das folgende Beispiel zeigt mein problem:

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)

Das gewünschte Ergebnis wäre: ID = 1 VALUE = 15662
Jedoch, wenn Sie von @data Tabelle, die ich nicht scheinen, um dieses zu erhalten. Ich stattdessen bekommen ID = 1 VALUE = 15661.

Hat jemand eine Idee, warum das so ist? Ich vermute, es ist irgendeine Art von float-nuance. Aber ich hätte nie gedacht, es hätte ein problem mit so etwas, wie das oben. Irgendwelche Ideen? Vielen Dank im Voraus für Eure Hilfe.

InformationsquelleAutor Anish Patel | 2010-12-09
Schreibe einen Kommentar