Я не могу поверить, что не могу понять, как это сделать, но что я могу сказать, я не могу решить это.
Я просто пытаюсь написать числа в стандартном формате (в сопоставлении с научными обозначениями).
Я прочитал бесчисленные примеры того, как этого добиться, используя "setprecision (...)" и "fixed" и т. Д., Но проблема в том, что точность чисел не известна во время компиляции и ввода консервативной оценки с помощью 'setprecision (...)' оставляет кучу лишних нулей в этом месте.
Вот пример того, что я ищу:
let: tau = 6.2831
tau * 0.000001 -> 0.0000062831
tau * 0.001 -> 0.0062831
tau -> 6.2831
tau * 1000 -> 6283.1
tau * 1000000 -> 6283100
На данный момент получаю:
tau * 0.000001 -> 6.2831e-006
tau * 0.001 -> 0.0062831
tau -> 6.2831
tau * 1000 -> 6283.1
tau * 1000000 -> 6.2831e+006
Единственное, что я могу сделать, это как-то извлечь показатель степени двойного, тогда, если показатель положителен, «установить» точность на ноль, в противном случае установить точность на «-1 * exp»; но это кажется чрезвычайно запутанным способом «выключения» научной нотации.
Кто-нибудь знает лучший способ?