Don't use long long to cast signed int to float.

Doesn't work too well with gdc's longdouble implementation to use ```long long```.  Using a 64bit long is much better.