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.

@Kevin_Ring @Gabriel_Transmira
I found a way to get the complete values. Here is the node structure. This at least prints to the screen correctly. :slight_smile:

Has this issue been resolved? I’ve also noticed that the value is being truncated after the sixth decimal place.

As far as I’m aware, this is not something we can fix in Cesium for Unreal. It needs to be fixed in Unreal Engine, so if it causes a problem for you then you should report it to Epic.