gpt4 book ai didi

在C中将时间转换为毫秒

转载 作者:行者123 更新时间:2023-12-04 10:13:56 25 4
gpt4 key购买 nike

我有一个格式为

的数据列表

08:01:00.064

表示法:时、分、秒、毫秒

我需要将它们转换成:second.millisecond.

请在下面找到我的代码,

float calculateTime(char *line) {

int hour;
int minute;
int second;
int millisecond;
//transfer from char to int
hour = ((line[0] - '0')*10 + (line[1] - '0'))*3600;
minute = ((line[3] - '0')*10 + (line[4] - '0'))*60;
second = (line[6] - '0')*10 + (line[7] - '0');
millisecond = (line[9] - '0') *100 + (line[10] - '0') *10 + (line[11] - '0');

float time;

time = hour + minute + second + millisecond *0.001;

return (time);

我的代码有一个问题,毫秒数不准确。我认为这是由于计算时的浮点格式。

结果如下,

37831.945312 source millisecond = 944

我期望的输出是

37831.945312

最佳答案

一个典型的float (IEEE754 32 位)只会精确到大约 7 位有效数字。你超越了那个。

解决方案?使用 double反而。这会给你大约 15 个有效数字。但请注意,结果可能仍然不准确。这就是浮点运算的本质。

一个体面的解决方案?使用 stuct而不是包含时间值。有一个叫tm<time.h> .

关于在C中将时间转换为毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33826412/

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