[Solved] float logs as 2, but floors to 1, and != 2.

This ToString is ironically a lot like this other discussion:

In the future… if you see numbers acting weird, first consult the magical oracle of floating point and assume that’s the problem.

Yep, it’s weird… but as you have said, now you know.

Cause at the end of the day… if there was somethign truly buggy about floats/doubles. The internet by and large would be up in arms. Becuase consider the fact that Unity didn’t create C#/mono/.net. Microsoft created C# and .net, and mono by Ximian/Xamarin/opensource community and has a massive user base around the world. They’d know if float acted outside of the IEEE 754 standard:

Especially considered that most floating point operations are really just pass through to the CPU, and if the CPU doesn’t support it (what is this? 1995?) the OS has an implementation for it. So as to avoid environment to environment differences/bugs like you thought you may have found.