Я пытаюсь отформатировать числа к определенному числу значащих цифр, используя C / C ++ и предпочтительно STL.Я видел примеры этого в Javascript (toPrecision ()) и .Net, но я не могу найти ничего подобного в C / C ++.Я хочу создать функцию примерно так:
std::string toPrecision(double value, int significantDigits) {
std::string formattedString;
// magic happens here
return formattedString;
}
, чтобы она давала такие результаты:
toPrecision(123.4567, 2) --> "120"
toPrecision(123.4567, 4) --> "123.4"
toPrecision(123.4567, 5) --> "123.45"
Кто-нибудь знает хороший способ сделать это?Я рассматриваю возможность выбросить целое число в строку, а затем просто просканировать его, чтобы найти ненулевые цифры и подсчитать их каким-то разумным способом, но это кажется громоздким.код в один из браузеров и просто посмотреть, как выглядит их функция toPrecision, но я думаю, что мне понадобится целый день, чтобы разобраться с незнакомым кодом.Надеюсь, что кто-то может помочь!