Точность продолжительности хронового с двойной.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Точность продолжительности хронового с двойной.

Сообщение Anonymous »

В следующем коде: < /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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»