В следующем коде: < /p>
using seconds = std::chrono::duration;
using namespace std::literals;
int main() {
seconds s = 10ms + 10us + 10ns;
std::print("from chrono {} | from count {:%Q}\n", s, s);
}
< /code>
Я получаю распечатку: < /p>
from chrono 0.01001s | from count 0.01001001
< /code>
См. Пример живого. Продолжительность Chrono может представлять наносекунд, и ясно, что спецификация формата позволяет печать десятичных декораций. Почему он останавливается после 5 десятичных мест? seconds s = 10ms + 10us + 123ns;
std::print("from chrono {} | from count {:%Q}\n", s, s);
< /code>
См. Пример живого < /p>
Тогда я получаю < /p>
from chrono 0.0100101s | from count 0.010010123
< /code>
, который имеет большую точность, но все еще неверен. По -видимому, нет спецификатора формата, который влияет на это (специализация формата).
Каково объяснение такого поведения?
Подробнее здесь: https://stackoverflow.com/questions/793 ... t-printing