Double-precision in UE5 blueprints has a limit of 6 decimal places

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:

Coordinates

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.