Подскажите, как сделать чтобы эта "сволочь" не округляла константы?
если не в core, то наверно никак, т.к. все вычисления за пределами core 32-битные вроде
если внутри core, то нужные модули можно пометить как 64-битные. Правда, 64-битные флоаты всё равно текстом не ввести, кажется, из-за ГУИшного бага, но не помню точно. Поэтому скорее всего придётся воспользоваться методом предложенным Hron с суммой двух констант и домножением на экспоненту при необходимости. Результат внутри core будет 64-битным, т.е.
12345.657188 = 12345.0 + 0.657188
0.12345657188 = (12345.0 + 0.657188)*10^-5
УПД: специалисты говорят, что лучше не умножать на 10^-5 а делить на 100000, т.к. для 100000 - однозначное представление в IEEE 32-bit float, а для 10^-5 скорее всего будет приближение, т.к. реальная экспонента там бинарная, а не десятичная
УПД2: если доля нужна оч маленькая и делить придётся на 10000000 и более, что опять выходит за пределы 32-битной флоатовой мантиссы (23 бита), то придётся поизголяться в духе A+(B+C/1000000)/1000000, чтоб ввести что-то вроде 123456.123456123456 без потери точности