В настоящее время я пытаюсь сделать простой калькулятор, но я хочу, чтобы он использовал несколько большие цифры (все, что выше 10 ^ 10 должно подойти). И поскольку в любом приличном калькуляторе есть операции с плавающей запятой, я решил использовать в качестве типа double.
К сожалению, когда я попытался написать большое число (около 10 ^ 7), оно вошло в электронную запись.
Я хочу отобразить это как нормальное число.
Вся помощь приветствуется. : D
Если вы хотите отобразить все цифры вашего двойника (вместо того, чтобы перейти к научной нотации), вы должны изменить форматирование с плавающей точкой выходного потока на станд :: фиксированной:
double d = 1000000000000000.0; // 10^16
std::cout << std::fixed << d;
Выход:
1000000000000000.000000
Если вы хотите, чтобы ваш дисплей вошел в научную нотацию с пользовательским показателем, вам придется сделать это самостоятельно, используя существующие инструменты.
Вы можете попробовать GMP библиотека для произвольной точности арифметики. Если вы используете его в Windows, вы можете аккуратно установить его, используя mingw-get.
Для 64-битного двойного вы можете использовать длинный двойной, Я думаю. Я лично никогда не нуждался в этом.
Кроме того, существуют расширения процессора для более длинных регистров с плавающей запятой, о которых я не очень разбираюсь, и которые я использую для простых задач.