假如我有个函数fun,接受若干个TDateTime的值而我传递当前时间,fun(now, now, now);这样能保证3个值是相等的么?精度相同

解决方案 »

  1.   

    而我传递当前时间,fun(now, now, now);
    这3个值 到底是否一样 取决于 Now函数在不同pc机上 执行的时间 理论上是一样的。也就是说 3次执行now 花费的时间是忽略不计的。但在一些环境下 他就会不一样。
    所以,为了保证你传的3个时间参数一样 你传3个值明显没什么用处,传一个就可以。
    如果 你为了连续的采集3个时间 来检查电脑的性能,我觉得 你可以把写个MYnow函数
    beign
      result := now;
     Application.ProcessMessages;
    end这样 连续3次调用mynow 值有可能是不一样的
      

  2.   

    不能保证
    看你要的精度要保证的话,你可以先取now值,再把值传进函数
    timer1:=now;
    fun(timer1, timer1, timer1);
      

  3.   

    3个参数有执行顺序,不论是从左到右还是从右到左,3个now应该不一样。
      

  4.   

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