Я обычно использую %g
, но, похоже, количество цифр экспоненты зависит от системы , и я не могу работать с такими вариантами, как %.4g
или %.2g
(они просто производят те же результаты, не так ли?).
Что я на самом деле хотел бы сделать, так это использовать простое представление с плавающей точкой «когда это возможно», если число (в абсолютном значении) находится в некотором диапазоне (например, 10 ^ 5> | x |> 10 ^ -5), в противном случае используйте научную запись. Я также хочу ограничить количество отображаемых цифр, скажем, до 5 (чтобы я не получал супер огромные числа с плавающей запятой, такие как 0.12345678901234567890 ...).
Некоторые примеры:
0.123456890
-> 0.12346
0.000000000123456
-> 1.23456e-10
Могу ли я сделать это прямо в sprintf
или мне нужно написать специальную оболочку?