In most trivial cases, the compiler will remove it anyway. There is an important point with value-types, which is that copying it into a variable clones the value, so can represent a significant change - but you shouldn't encourage mutable value-types anyway.
With floating-point, there are some edge-cases where when it uses a local you get different answers (the native types have greater width than Single
/ Double
etc) - which also means you can get different results with debug/release (depending on whether the variable is removed by the compiler).
There are also cases where the variable can do more than the value on the stack - i.e. be "captured" into a lambda / anon-method, or be used for out
/ref
, but that rarely applies.