簡體   English   中英

將 std::chrono::steady_clock::time_point 轉換為 long double

[英]converting std::chrono::steady_clock::time_point to long double

在計算時間變化后,如何將std::chrono::steady_clock::time_point轉換為雙精度。

int main()
{
    std::chrono::steady_clock::time_point start, finish;
   
    start = std::chrono::steady_clock::now();
    finish = start;

    while (true){
        long double elapsedTime = std::chrono::duration_cast<std::chrono::nanoseconds>(finish -  start).count() / 1000000000;

        std::cout << "Time elapsed (in seconds), " << elapsedTime << std::endl;
    }
    



    return 0;
}

編輯:它有效,但它只返回 0 或 1,我正在尋找的是1.13715263724或其他東西

首先,您應該在循環開始時更新開始,並在結束時完成。 為了得到一個浮點值,1000000000 必須被 1000000000.0 替換:

while (1) {
    start = std::chrono::steady_clock::now();
    long double elapsedTime = std::chrono::duration_cast<std::chrono::nanoseconds>(start -  finish).count() / 1000000000.0;
    std::cout << "Time elapsed (in seconds), " << elapsedTime << std::endl;
    finish = start;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM