@fay59 unity's mono converts all floats on the .net evaluation stack to doubles. combine that with the roslyn stloc/ldloc release-only peephole optimization that effectively "inlines" just-assigned variables if they're leftmost in an expression.
it's basically the difference between
(double)x + (double)y == 1
and
(float)((double)x + (double)y) == 1
https://sharplab.io/#v2:C4LgTgrgdgPgAgJgIwFgBQAzANgewIbAAEAHoQLyEAMAdACwYDc62+RAnuVdQGyPpxIAnAAphAExwQARlgCmASlIBqQuMkyFHMhSTymaASOEsC80ROlzFhFWsub55HXqA===