• Oh, gosh.

    No wonder our industry has a bad name.

    Tom, here is something for you (and others) to think about.

    And verify your instincts.

    DECLARE @D DECIMAL (38, 28), @F FLOAT

    SET @D = 1.001 SET @F = 1.001

    SELECT 0 [Number of Operations],

    @D,

    SQL_VARIANT_PROPERTY(@D, 'Precision') DecimalPrecision,

    SQL_VARIANT_PROPERTY(@D, 'Scale') DecimalScale,

    @F,

    SQL_VARIANT_PROPERTY(@F, 'Precision') FloatPrecision,

    SQL_VARIANT_PROPERTY(@F, 'Scale') FloatScale

    UNION

    SELECT 1 ,

    CONVERT(DECIMAL (38, 28), @D*@D),

    SQL_VARIANT_PROPERTY(@D*@D, 'Precision') DecimalPrecision,

    SQL_VARIANT_PROPERTY(@D*@D, 'Scale') DecimalScale,

    @F*@F,

    SQL_VARIANT_PROPERTY(@F*@F, 'Precision') FloatPrecision,

    SQL_VARIANT_PROPERTY(@F*@F, 'Scale') FloatScale

    UNION

    SELECT 2 ,

    CONVERT(DECIMAL (38, 28), @D*@D*@D),

    SQL_VARIANT_PROPERTY(@D*@D*@D, 'Precision') DecimalPrecision,

    SQL_VARIANT_PROPERTY(@D*@D*@D, 'Scale') DecimalScale,

    @F*@F*@F,

    SQL_VARIANT_PROPERTY(@F*@F*@F, 'Precision') FloatPrecision,

    SQL_VARIANT_PROPERTY(@F*@F*@F, 'Scale') FloatScale

    UNION

    SELECT 3 ,

    CONVERT(DECIMAL (38, 28), @D*@D*@D*@D),

    SQL_VARIANT_PROPERTY(@D*@D*@D*@D, 'Precision') DecimalPrecision,

    SQL_VARIANT_PROPERTY(@D*@D*@D*@D, 'Scale') DecimalScale,

    @F*@F*@F*@F,

    SQL_VARIANT_PROPERTY(@F*@F*@F*@F, 'Precision') FloatPrecision,

    SQL_VARIANT_PROPERTY(@F*@F*@F*@F, 'Scale') FloatScale

    _____________
    Code for TallyGenerator