gpt4 book ai didi

c++ - Linux c++ 将秒(double)转换为毫秒、微秒、纳秒、皮秒

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:45:00 29 4
gpt4 key购买 nike

我有一个设备,它以秒为单位给出延迟 (char*),值类似于 0.000003650000,我必须将该值转换为毫秒、微秒、纳秒或皮秒.我在 linux (c++) 的 qt-creator 中写了一个应用程序。我尝试使用库 chrono,但正如我所见,它只为每种类型保留长值,而且我总是会丢失一些数据。哪种方法最好?

最佳答案

char* 转换为 std::string。检查小数点后是否正好有 12 位数字。使用 std::strtoull(digits,10); 将它们转换为 unsigned long long 皮秒数(请记住明确指定基数,否则前导零将使它成为认为它是一个八进制数)。

如果需要处理>=1s的延时,用同样的方法将小数点前的数字转换成秒数,加到皮秒中,pico += seconds*(1000ull*1000*1000 *1000);

最后,纳秒 = (皮秒 + 500)/1000;

关于c++ - Linux c++ 将秒(double)转换为毫秒、微秒、纳秒、皮秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39033426/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com