I have a simulation that can generate quite a bit of data when it runs, for example $650\cdot 400 \cdot 400$ floating point numbers. Without compression, that's a few gigabytes worth if I want to save the whole simulation and not just some data extracted from it. However, with some methods, like Crank-Nicolson, we know the maximum error that can occur, (it has second order accuracy). Suppose I calculate it, then round or truncate all the values in my $650 \cdot 400 \cdot 400$ matrix to the same number of digits (or the same number of digits plus 1): $$tolerence = .00004$$ $$example = .45435354354 \rightarrow example_{rounded} = .454354$$
If I know a maximum value I can now used fixed point math and potentially get some very good compression using algorithms for integers (as storing compressed floating points can be difficult, and fixed-point numbers work similarly to integers "under the hood"). This would also allow me to use binary storage without much difficulty. In any way is this inadvisable? Might I loose important information, even if it is below tolerance? Will this affect the analysis I do on the data (even if tolerance [error] is preserved [is it?])?