【发布时间】:2011-02-11 07:29:42
【问题描述】:
我知道当我在 C# 中使用 DateTime.Now.Ticks 时,它会返回一个 long 值,但我需要将它存储在一个 int 变量中,我很困惑我是否可以保持这种精度。到目前为止,我只有一个演员表
int timeStampValue = (int)DateTime.Now.Ticks;
这是一个项目限制,所以我知道有大量的精度损失。我想我只是想不出另一种方法来执行存储在 int 中的时间戳事情,然后我可以将其与其他时间戳进行比较。
如果可能的话,任何关于如何保持精度的建议或意见将不胜感激。
每个人的回答都是说明性的。实际上,我最终只是设置了一个涉及计数器的过程,当使用一个项目时,它的计数器设置为“0”,所有其他计数器都增加 1。然后,最高的计数器是下一个要使用的项目。
【问题讨论】:
-
为什么要存储在int中?
-
这是一个项目约束,这是我能想到的唯一方法,而且我过去不需要做时间戳的东西。
-
是不是根本不允许使用long,还是只用于存储到外部数据?例如,如果您可以使用 long 来获取数据,然后存储两个 int?
-
不允许使用long,我只能使用int
-
说你根本不能使用整数并没有真正给出限制。这是由于嵌入式系统吗?您在调用 '(int)DateTime.Now.Ticks;' 的那一刻使用 longs看看我下面的解决方案。您可以使用两个 uint 来表示整个时间戳 long 值,并为您可能需要做的任何数学创建自己的方法。这将允许您仅使用整数来获得完整分辨率。
标签: c# .net datetime timestamp