"I have tried baking the displacement and applying it as modifier but it didn't work, because the baked map was very imprecise."
You indeed need to bake the node displacement as an image (probably a UV mapped image). If it is imprecise, it is because you used insufficient bit depth or saved as a .jpg (imprecise in depth) or because you used insufficient resolution on the image (imprecise in XY.)
For baking displacement maps, I would recommend checking out Johan Apes answer at Is it possible to make Particles follow Displacement Node? . Baking depth maps is also dealt with elsewhere on Blender Stack Exchange (many times) as well as elsewhere.
When worried about precision, I would recommend baking a depth map as a floating point, non-color image, and saving as .exr to preserve both the bit depth and values outside of the 0,1 range.
Swapping in a displacement modifier for nodes displacement is mostly straight-forward. For the values you're showing, you would need only to specify the texture image to be used and change the coordinates to UV. Modifier "Strength" corresponds to Scale and Midlevel corresponds to Midlevel. The Height from the Displacement node is what you're baking into the image.