SQL Server, Modulo, floats
Posted by jpluimers on 2016/12/08
SQL server % (modulo, not mod) operator doesn’t like floats (with reason).
You should get rid of the floats as they will give inaccurate results.
As a workaround, cast either through an integer or through a decimal: sql server modulo float – Google Search
CAST(CAST(TheInaccurateFloatValue AS decimal(38,19)) % ModuloValue AS float)
The decimal(38,19)
is the maximum non-float precision you get.
( cast(dividend as integer) % divisor ) + ( dividend - cast(dividend as integer))
–jeroen
Leave a Reply