Unreal Engine 5 supports double-precision in blueprints, which is great for geolocation with the Cesium plugin. However, I discovered that when creating a Float (double-precision) variable in UE 5.1.1, you can have 17 digits to the left of the decimal point but only 6 digits to the right. The editor automatically truncates the number when you try typing more than 6 decimal places. I think you need 7 or 8 decimal places when dealing with reliable geolocation.
Has anybody found a workaround for this? Or perhaps C++ is still the way to go.
I believe this is just a visual thing. It stores the value you enter using the full precision of a double (~15 significant digits), but then displays it in the UI formatting to only 6 places after the decimal point.
I did some testing on that as well. I made three Float (double-precision) variables in the editor and set the values to 0.123456789
. In the editor, it only displays 0.123457
. To check if the variables are really being truncated, I hooked these variables to a To Text
node in a widget blueprint which allows you to show the fractional digits.
Here is the result I get:

The results are the same when using Print String
.
This looks like the values are getting truncated.
I don’t know for sure about Blueprints, but I noticed that the Details UI has the same behavior when editing properties on actors and components: the displayed values are rounded/truncated. But by setting a breakpoint in the C++ code, I confirmed that the full value was being set, even though it’s not shown. I don’t know why Blueprints would be different, but if so, there’s probably not much we can do other than report it to Epic. I can’t think of any reason they would do this purposely.
Thanks for confirming. I’ll look more into this.