I managed to figure it out, hidden in some code I had, there was an edge case where the value I was passing into that multiplication could be equivalent to NAN from math.h, which is “(float)((float)((double)(1e+300) * (double)(1e+300)) * 0.0f)”. It looks like this causes a float overflow. I guess it might be nice to be able to see that this is an invalid value when it’s converted to an FString, rather than just have it printed as “0.0”.