Если у вас нет веских причин не делать этого, обычно лучше хранить значения валюты в формате с фиксированной запятой , а не с плавающей запятой. Ada поддерживает это напрямую, но для языков C-ish вы сохраняете значение в единицах пенни , а не в долларах, и конвертируете его только в тех случаях, когда вы его отображаете.
Таким образом, в этом случае значение productPrice будет 99999999999999999999 (центов). Чтобы отобразить это, вы должны сделать что-то вроде этого (Если бы это был C. Я не знаю языка):
int const modulus = productPrice % 100;
printf ("The price = %d.%d\n", (int) ((productPrice - modulus) / 100), modulus);
Я бы также использовал целое число, а не переменную с плавающей запятой, чтобы сохранить значение почти во всех случаях. В этом случае это не сработает (даже если вы используете 64-разрядное целое число), потому что ваше значение ошеломительно велико. Мы говорим в 1 миллион раз больше, чем государственный долг США! Если такое большое значение доллара когда-либо в моей жизни имеет смысл, у нас у всех большие проблемы.