My code passed all tests except tests 28 and 29. I repeated the code steps using the input data manually with a big number calculator and my code agreed with the calculator. There may be some roundoff error if implemented differently than my solution, but my solution agrees more with the big number calculator and would think it provides better answers.
tests:
amountToDonate 898124017.826243404425m 2.65 |> should equal 47600572 // should be 48778687
amountToDonate 1_000.0001m 0.99 |> should equal 19 // should be 20
(I am also not sure why the underscore in this last test is used.)