Discrepancies between classifier and trees_to_dataframe()

I require converting my booster to a string format to read it in via some other code. I’ve been noticing discrepancies between the scores produced by the original booster and the other model (which uses trees_to_dataframe() as an intermediate step) and I am trying to get to the root of the issue.

Does trees_to_dataframe() preserve the exact precision of all of the split and gain values, or is there any loss in precision when I convert to dataframe?

Furthermore, is there a way for me to check this? As far as I know, there is no way to convert a dataframe back into a booster.