Ich habe einige Probleme mit der Konvertierung einiger Daten in einem FLOAT-Datentyp in Daten in einem INT-Datentyp gespeichert. Das folgende Beispiel zeigt mein Problem:Converting SQL FLOAT zu SQL INT, verlorene Daten
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)
Die gewünschten Ergebnisse wären: ID = 1 VALUE = 15662
jedoch, wenn von dem @data
Tisch komme, scheine ich nicht, dies zu erhalten. Ich bekomme stattdessen ID = 1 VALUE = 15661.
Hat jemand eine Idee, warum das ist? Ich vermute, es ist eine Art Float Nuance. Aber ich hätte nie gedacht, dass es ein Problem mit etwas wie dem oben genannten hätte. Irgendwelche Ideen? Vielen Dank im Voraus für Ihre Hilfe.
ROUND (Gewicht * 1000000.0, 0) wäre besser, weil wir nicht wissen, welcher Systemautor verwendet. – Lex