首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

问个“无聊”的有关问题

2012-05-11 
问个“无聊”的问题假如我有个函数fun,接受若干个TDateTime的值而我传递当前时间,fun(now, now, now)这样能

问个“无聊”的问题
假如我有个函数fun,接受若干个TDateTime的值

而我传递当前时间,fun(now, now, now);

这样能保证3个值是相等的么?精度相同

[解决办法]
应该一样的,至少能精确到毫秒,后面还有微秒,不清楚是否准确
[解决办法]
正常的取到毫秒应该可以
[解决办法]
系统默认的精度应该是一样的
[解决办法]
而我传递当前时间,fun(now, now, now);
这3个值 到底是否一样 取决于 Now函数在不同pc机上 执行的时间 理论上是一样的。也就是说 3次执行now 花费的时间是忽略不计的。但在一些环境下 他就会不一样。
所以,为了保证你传的3个时间参数一样 你传3个值明显没什么用处,传一个就可以。
如果 你为了连续的采集3个时间 来检查电脑的性能,我觉得 你可以把写个MYnow函数
beign
result := now;
 Application.ProcessMessages;
end

这样 连续3次调用mynow 值有可能是不一样的
[解决办法]
不能保证
看你要的精度
[解决办法]
不能保证
看你要的精度

要保证的话,你可以先取now值,再把值传进函数
timer1:=now;
fun(timer1, timer1, timer1);
[解决办法]
3个参数有执行顺序,不论是从左到右还是从右到左,3个now应该不一样。

[解决办法]
严格的说,每一次调用Now返回的值都是不一样的。所以,如果需要3个值完全相同,按6楼的方法来做即可。

热点排行