SQL, :
{
SELECT
0.55*(287.61 / 0.66) PrecisionError,
0.55* (CONVERT(NUMERIC(24,12), 287.61) / CONVERT(NUMERIC(24,12), 0.66)) NotPrecisionError
DECLARE @V SQL_VARIANT
SET @V = 0.55*(287.61 / 0.66)
SELECT
Value = @V
,[TYPE] = CONVERT(SYSNAME, sql_variant_property(@V, 'BaseType')) + '(' +
CONVERT(VARCHAR(10), sql_variant_property(@V, 'Precision')) + ',' +
CONVERT(VARCHAR(10), sql_variant_property(@V, 'Scale')) + ')'
SET @V = 0.55 * (CONVERT(NUMERIC(24,14), 287.61) / CONVERT(NUMERIC(24,14), 0.66))
SELECT
Value = @V
,[TYPE] = CONVERT(SYSNAME, sql_variant_property(@V, 'BaseType')) + '(' +
CONVERT(VARCHAR(10), sql_variant_property(@V, 'Precision')) + ',' +
CONVERT(VARCHAR(10), sql_variant_property(@V, 'Scale')) + ')'
}
PrecisionError NotPrecisionError
239.67499985 239.6750000000000
TYPE value
239.67499985 numeric (14.8)
TYPE value
239.6750000000000 numeric (38.13)
source
share