I understand that floating point calculations have accuracy issues and there are plenty of questions explaining why. My question is if I run the same calculation twice, can
Since your question is tagged C#, it's worth emphasising the issues faced on .NET:
(a + b) + c is not guaranteed to equal a + (b + c);This means, that you shouldn't rely upon your .NET application producing the same floating point calculation results when run on different versions of the .NET CLR.
For example, in your case, if you record the initial state and inputs to your simulation, then install a service pack that updates the CLR, your simulation may not replay identically the next time you run it.
See Shawn Hargreaves's blog post Is floating point math deterministic? for further discussion relevant to .NET.