Trong ví dụ tại http://en.cppreference.com/w/cpp/chrono giá trị giây thu được trong một double
. Đây là hành vi tôi muốn. Tuy nhiên, điều này dường như dựa vào giả định ngầm định rằng trừ điểm thời gian cho một giá trị đại diện cho giây. Tôi không thể tìm thấy bất cứ điều gì giải thích lý do tại sao một thời gian mang lại số giây trôi nổi khi không có đơn vị thời gian nào được chỉ định thực sự. Nếu không sử dụng auto
, ai đó có thể hiển thị cách thu thập đơn vị thời gian một cách rõ ràng, chẳng hạn như giây trong loại điểm nổi hoặc trỏ tôi đến tài liệu hoặc giải thích về lý do tại sao chuyển đổi nói trên đại diện cho giây?Nhận giây chrono trong phao
Việc quy đổi trong câu hỏi là chủ yếu:
std::chrono::time_point<std::chrono::system_clock> start = std::chrono::system_clock::now();
std::chrono::time_point<std::chrono::system_clock> end = std::chrono::system_clock::now();
std::chrono::duration<double> elapsed_seconds = end-start; // why does this represent seconds as opposed to some other time unit?
double secondsInDouble = elapsed_seconds.count();
Xem bài viết sau đây cho ví dụ về việc chuyển đổi.
How to get duration, as int milli's and float seconds from <chrono>?
C++ chrono - get duration as float or long long
getting chrono time in specific way
Chrono Timer Not Converting Seconds Properly
Tôi thấy phần tôi đã bỏ lỡ ở đầu tham chiếu: 'dấu chấm là một hằng số hợp lý thời gian biên dịch biểu diễn số giây từ một lần đánh dấu đến tiếp theo. 'Vì vậy, với tỷ lệ mặc định là 1: 1, khoảng thời gian luôn đại diện cho một giây. Cảm ơn vì đã mang đến sự chú ý của tôi. – taz
'std :: ratio <1, 1000>' có thể được thay thế bằng 'std :: milli'. –