Есть ли способ программно получить двойной, который ближе всего к 1.0, но на самом деле не 1.0?
Один взломанный способ сделать это - это memcpy double с целым числом одного и того же размера, а затем вычесть его. То, как работают форматы с плавающей запятой IEEE754, приведет к уменьшению экспоненты на единицу при изменении дробной части от всех нулей (1.000000000000) до всех (1.111111111111). Однако существуют машины, где целые числа хранятся мало-endian, в то время как с плавающей запятой сохраняется big-endian, поэтому это не всегда будет работать.