flang компилятор доказывает, что программа не зациклится 0.6.2 GitHub

Точные десятичные стоят ноль, а не в сто раз дороже

Измерено, и это опровергло мою же оценку. Я сказал «медленнее в 10–100 раз». Верно это оказалось только для произвольной точности, где цифр может стать сколько угодно.

Выбранное представление другое: целое число минорных единиц. Рубль пятьдесят — это 150. Тип другой, носитель — тот же машинный double.

Числа замера (ветка work/exact-decimal, вершина 6c408f8):

Чем платим на самом деле:

Почему приём сработал. Носитель не менялся, поэтому изменение не увидели восемь целей печати, JSON, мост и побайтовая сверка. Тот же приём, каким заведены натуральные числа. Это общее правило: новый тип дешёв, если он не новый вид значения.

Связано: three-number-types, exact-in-which-base, double-has-no-laws