Как я могу отобразить большой дубль обычно вместо научно нормализованного

В настоящее время я пытаюсь сделать простой калькулятор, но я хочу, чтобы он использовал несколько большие цифры (все, что выше 10 ^ 10 должно подойти). И поскольку в любом приличном калькуляторе есть операции с плавающей запятой, я решил использовать в качестве типа double.
К сожалению, когда я попытался написать большое число (около 10 ^ 7), оно вошло в электронную запись.
Я хочу отобразить это как нормальное число.

Вся помощь приветствуется. : D

-2

Решение

Если вы хотите отобразить все цифры вашего двойника (вместо того, чтобы перейти к научной нотации), вы должны изменить форматирование с плавающей точкой выходного потока на станд :: фиксированной:

Живая демоверсия о Coliru:

double d = 1000000000000000.0; // 10^16
std::cout << std::fixed << d;

Выход:

1000000000000000.000000

Если вы хотите, чтобы ваш дисплей вошел в научную нотацию с пользовательским показателем, вам придется сделать это самостоятельно, используя существующие инструменты.

1

Другие решения

Вы можете попробовать GMP библиотека для произвольной точности арифметики. Если вы используете его в Windows, вы можете аккуратно установить его, используя mingw-get.

Для 64-битного двойного вы можете использовать длинный двойной, Я думаю. Я лично никогда не нуждался в этом.

Кроме того, существуют расширения процессора для более длинных регистров с плавающей запятой, о которых я не очень разбираюсь, и которые я использую для простых задач.

0

По вопросам рекламы [email protected]