Given your use case, I would nonetheless use double and compress them directly.
The reason is that strong compressors such as 7zip are extremely good at processing "structured" data, which is a double array (one information = 8 bytes, this is very regular and predictable).
Any other optimization that may occur "manually" is likely to give in or offer a slight advantage, while assessing time and risks.
Please note that you can still use the “trick” of converting double to int before compression, but I'm really not sure if it will bring tangible benefits to you, but on the other hand it will seriously reduce your ability to deal with unexpected ranges of numbers in the future.
[Change] Depending on the source data, if the bit is “lower than the accuracy level”, “noisy”, it may be useful for the compression ratio to remove noisy bits by rounding the value or even directly applying a mask at the lowest bit level (I think purists will not like this last method, but at least you can directly choose your level of accuracy in this way, while preserving the entire range of possible values).
So, to summarize, I suggest direct LZMA compression in your double array.
source share