我正在寻找一些我正在研究的Qt程序的建议,它使用Qwt绘制折线图。
基本上我的问题来自图表的x轴,即24:00时间。我有一个QPolygonF
存储了一系列QPointF
s,其中包含我的情节曲线的值,其中x轴中的每个1.0
等于1秒。然后我使用unix时间戳来设置x轴的每个值,所以基本上我double xAxis
初始化为0.0
,它被添加到QPolygonF
,如points.append(xAxis, yAxis)
,用于开始曲线和之后的每个点我使用currentTime - prevTime
找到两个时间戳之间的差异,然后使用xAxis
通过所述差异增加+=
。如果这是有道理的。
无论如何,目前所有内容都会在一秒钟内显示出来并且完美无缺。但是,我需要精确到毫秒。我需要一些指导就是使用大型高精度双打。
使用简单的int
可以很容易地使用unix时间戳,因为这可以通过简单的double
来完成,但是当你增加包含毫秒数的位数时,00
01
10
11
将被切换为科学记数法。
我的问题是:如果他们恢复科学记数法,我如何存储潜在的大数字,如22429.388或更大?
如果这是一个非常基本的问题,感谢和抱歉。
答案 0 :(得分:0)
你说你的图轴长24:00
。这将是24*3600
秒,因此24*3600*1000
毫秒:86,400,000
小于INT_MAX
(=2,147,483,647
)。
因此,将x
值存储为int
应该没有问题。您只需要将第一个轴值设为0
,然后最后一个轴值为86,400,000
。
如果你的时间不是从0开始,你只需要定义显示为“参考日期”的最小时间,并根据这个“参考日期”存储值(以保证它们都在00:00:00.0000
之间。 (即:0
为int
)和24:00:00.0000
(即:86,400,000
为int
))。