Тема: VBA: Особенность работы функции Timer()
Добрый день, уважаемые.
Хочу поделиться наблюдением.
1. В MSDN тип, возвращаемый функцией Timer, указан как Single.
2. Код
MsgBox "TypeName(Timer) = " & TypeName(Timer)
также вернёт нам Single.
Но на самом деле реальный тип, возвращаемый функцией Timer, ни разу не Single, а очень даже Double, и в определённых случаях разница принципиальна. Проиллюстрирую:
Attribute VB_Name = "MainModule"
' Type Variant SubType Decimal speed test
Option Explicit
Const IterationCount As Long = 300
Dim I As Long, TimeValPrev As Double
Dim TimeValArrS(IterationCount) As Single, TimeValArrD(IterationCount) As Double
Sub Main()
StdOutForm.Show
For I = 0 To IterationCount
' ждём "тик" таймера
' функция CDbl() принципиально необходима, иначе сработает округление переменной TimeValPrev до Single
' перед сравненнием чисел с плавающей запятой, произойдёт потеря точности, и цикл пропустит несколько "тиков"
' (вспоминаем про опцию компилятора Allow Unrounded Floating-Point Operations)
' Код не оптимален, в нём на 2 вызова функции Timer больше, чем нужно, но мне важна наглядность.
TimeValPrev = Timer
Do
Loop Until CDbl(Timer) > TimeValPrev
TimeValArrS(I) = Timer
TimeValArrD(I) = Timer
Next I
For I = 1 To IterationCount
StdOutForm.TextOutConsole.SelStart = Len(StdOutForm.TextOutConsole.Text)
StdOutForm.TextOutConsole.SelText = " timer value: Single = " & FormatNumber(TimeValArrS(I), 10) _
& " Double = " & FormatNumber(TimeValArrD(I), 10) _
& vbTab & " timer interval: Single = " & FormatNumber(TimeValArrS(I) - TimeValArrS(I - 1), 10) _
& " Double = " & FormatNumber(TimeValArrD(I) - TimeValArrD(I - 1), 10) _
& vbCrLf
Next I
End Sub
Для работы код использует форму, прикреплена во вложении.
Код сохраняет в массивы типов Single и Double, а затем выводит значения последовательных вызовов функции Timer, а так же интервалы между последовательными значениями.
timer value: Single = 51 889,4800000000 Double = 51 889,4790000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 889,4900000000 Double = 51 889,4940000000 timer interval: Single = 0,0117187500 Double = 0,0150000000
timer value: Single = 51 889,5100000000 Double = 51 889,5100000000 timer interval: Single = 0,0195312500 Double = 0,0160000000
timer value: Single = 51 889,5300000000 Double = 51 889,5260000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 889,5400000000 Double = 51 889,5410000000 timer interval: Single = 0,0117187500 Double = 0,0150000000
timer value: Single = 51 889,5600000000 Double = 51 889,5570000000 timer interval: Single = 0,0195312500 Double = 0,0160000000
timer value: Single = 51 889,5700000000 Double = 51 889,5720000000 timer interval: Single = 0,0117187500 Double = 0,0150000000
timer value: Single = 51 889,5900000000 Double = 51 889,5880000000 timer interval: Single = 0,0195312500 Double = 0,0160000000
timer value: Single = 51 889,6100000000 Double = 51 889,6040000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 889,6200000000 Double = 51 889,6190000000 timer interval: Single = 0,0117187500 Double = 0,0150000000
timer value: Single = 51 889,6400000000 Double = 51 889,6350000000 timer interval: Single = 0,0195312500 Double = 0,0160000000
timer value: Single = 51 889,6500000000 Double = 51 889,6500000000 timer interval: Single = 0,0117187500 Double = 0,0150000000
timer value: Single = 51 889,6600000000 Double = 51 889,6660000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 889,6800000000 Double = 51 889,6820000000 timer interval: Single = 0,0195312500 Double = 0,0160000000
timer value: Single = 51 889,7000000000 Double = 51 889,6970000000 timer interval: Single = 0,0117187500 Double = 0,0150000000
timer value: Single = 51 889,7100000000 Double = 51 889,7130000000 timer interval: Single = 0,0195312500 Double = 0,0160000000
timer value: Single = 51 889,7300000000 Double = 51 889,7280000000 timer interval: Single = 0,0117187500 Double = 0,0150000000
timer value: Single = 51 889,7400000000 Double = 51 889,7440000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 889,7600000000 Double = 51 889,7600000000 timer interval: Single = 0,0195312500 Double = 0,0160000000
timer value: Single = 51 889,7700000000 Double = 51 889,7750000000 timer interval: Single = 0,0117187500 Double = 0,0150000000
timer value: Single = 51 889,7900000000 Double = 51 889,7910000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 889,8000000000 Double = 51 889,8060000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 889,8200000000 Double = 51 889,8220000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 889,8400000000 Double = 51 889,8380000000 timer interval: Single = 0,0195312500 Double = 0,0160000000
timer value: Single = 51 889,8500000000 Double = 51 889,8530000000 timer interval: Single = 0,0117187500 Double = 0,0150000000
timer value: Single = 51 889,8700000000 Double = 51 889,8690000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 889,8800000000 Double = 51 889,8840000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 889,9000000000 Double = 51 889,9000000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 889,9100000000 Double = 51 889,9160000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 889,9300000000 Double = 51 889,9310000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 889,9500000000 Double = 51 889,9470000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 889,9600000000 Double = 51 889,9620000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 889,9800000000 Double = 51 889,9780000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 889,9900000000 Double = 51 889,9940000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,0100000000 Double = 51 890,0090000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,0200000000 Double = 51 890,0250000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,0400000000 Double = 51 890,0400000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,0500000000 Double = 51 890,0560000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,0700000000 Double = 51 890,0720000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,0900000000 Double = 51 890,0870000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,1000000000 Double = 51 890,1030000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,1200000000 Double = 51 890,1180000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,1300000000 Double = 51 890,1340000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,1500000000 Double = 51 890,1500000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,1600000000 Double = 51 890,1650000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,1800000000 Double = 51 890,1810000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,2000000000 Double = 51 890,1960000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,2100000000 Double = 51 890,2120000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,2300000000 Double = 51 890,2280000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,2400000000 Double = 51 890,2430000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,2600000000 Double = 51 890,2590000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,2700000000 Double = 51 890,2740000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,2900000000 Double = 51 890,2900000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,3000000000 Double = 51 890,3060000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,3200000000 Double = 51 890,3210000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,3400000000 Double = 51 890,3370000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,3500000000 Double = 51 890,3520000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,3700000000 Double = 51 890,3680000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,3800000000 Double = 51 890,3840000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,4000000000 Double = 51 890,3990000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,4100000000 Double = 51 890,4150000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,4300000000 Double = 51 890,4300000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,4500000000 Double = 51 890,4460000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,4600000000 Double = 51 890,4620000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,4800000000 Double = 51 890,4770000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,4900000000 Double = 51 890,4930000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,5100000000 Double = 51 890,5080000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,5200000000 Double = 51 890,5240000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,5400000000 Double = 51 890,5400000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,5500000000 Double = 51 890,5550000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,5700000000 Double = 51 890,5710000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,5900000000 Double = 51 890,5860000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,6000000000 Double = 51 890,6020000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,6200000000 Double = 51 890,6180000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,6300000000 Double = 51 890,6330000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,6500000000 Double = 51 890,6490000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,6600000000 Double = 51 890,6640000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,6800000000 Double = 51 890,6800000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,7000000000 Double = 51 890,6960000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,7100000000 Double = 51 890,7110000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,7300000000 Double = 51 890,7270000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,7400000000 Double = 51 890,7420000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,7600000000 Double = 51 890,7580000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,7700000000 Double = 51 890,7740000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,7900000000 Double = 51 890,7890000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,8000000000 Double = 51 890,8050000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,8200000000 Double = 51 890,8200000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,8400000000 Double = 51 890,8360000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,8500000000 Double = 51 890,8520000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,8700000000 Double = 51 890,8670000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,8800000000 Double = 51 890,8830000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,9000000000 Double = 51 890,8980000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,9100000000 Double = 51 890,9140000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,9300000000 Double = 51 890,9300000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,9500000000 Double = 51 890,9450000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,9600000000 Double = 51 890,9610000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 890,9800000000 Double = 51 890,9760000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 890,9900000000 Double = 51 890,9920000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,0100000000 Double = 51 891,0080000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,0200000000 Double = 51 891,0230000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,0400000000 Double = 51 891,0390000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,0500000000 Double = 51 891,0540000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,0700000000 Double = 51 891,0700000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,0900000000 Double = 51 891,0860000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,1000000000 Double = 51 891,1010000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,1200000000 Double = 51 891,1170000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,1300000000 Double = 51 891,1320000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,1500000000 Double = 51 891,1480000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,1600000000 Double = 51 891,1640000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,1800000000 Double = 51 891,1790000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,2000000000 Double = 51 891,1950000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,2100000000 Double = 51 891,2100000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,2300000000 Double = 51 891,2260000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,2400000000 Double = 51 891,2420000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,2600000000 Double = 51 891,2570000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,2700000000 Double = 51 891,2730000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,2900000000 Double = 51 891,2880000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,3000000000 Double = 51 891,3040000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,3200000000 Double = 51 891,3200000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,3400000000 Double = 51 891,3350000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,3500000000 Double = 51 891,3510000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,3700000000 Double = 51 891,3660000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,3800000000 Double = 51 891,3820000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,4000000000 Double = 51 891,3980000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,4100000000 Double = 51 891,4130000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,4300000000 Double = 51 891,4290000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,4500000000 Double = 51 891,4440000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,4600000000 Double = 51 891,4600000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,4800000000 Double = 51 891,4760000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,4900000000 Double = 51 891,4910000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,5100000000 Double = 51 891,5070000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,5200000000 Double = 51 891,5220000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,5400000000 Double = 51 891,5380000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,5500000000 Double = 51 891,5540000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,5700000000 Double = 51 891,5690000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,5900000000 Double = 51 891,5850000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,6000000000 Double = 51 891,6000000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,6200000000 Double = 51 891,6160000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,6300000000 Double = 51 891,6310000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,6500000000 Double = 51 891,6470000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,6600000000 Double = 51 891,6630000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,6800000000 Double = 51 891,6780000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,7000000000 Double = 51 891,6940000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,7100000000 Double = 51 891,7090000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,7300000000 Double = 51 891,7250000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,7400000000 Double = 51 891,7410000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,7600000000 Double = 51 891,7560000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,7700000000 Double = 51 891,7720000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,7900000000 Double = 51 891,7870000000 timer interval: Single = 0,0117187500 Double = 0,0150000000
timer value: Single = 51 891,8000000000 Double = 51 891,8030000000 timer interval: Single = 0,0195312500 Double = 0,0160000000
timer value: Single = 51 891,8200000000 Double = 51 891,8190000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,8400000000 Double = 51 891,8340000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 891,8500000000 Double = 51 891,8500000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,8600000000 Double = 51 891,8650000000 timer interval: Single = 0,0117187500 Double = 0,0150000000
timer value: Single = 51 891,8800000000 Double = 51 891,8810000000 timer interval: Single = 0,0195312500 Double = 0,0160000000
timer value: Single = 51 891,9000000000 Double = 51 891,8970000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,9100000000 Double = 51 891,9120000000 timer interval: Single = 0,0117187500 Double = 0,0150000000
timer value: Single = 51 891,9300000000 Double = 51 891,9280000000 timer interval: Single = 0,0195312500 Double = 0,0160000000
timer value: Single = 51 891,9400000000 Double = 51 891,9430000000 timer interval: Single = 0,0117187500 Double = 0,0150000000
timer value: Single = 51 891,9600000000 Double = 51 891,9590000000 timer interval: Single = 0,0195312500 Double = 0,0160000000
timer value: Single = 51 891,9800000000 Double = 51 891,9750000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 891,9900000000 Double = 51 891,9900000000 timer interval: Single = 0,0117187500 Double = 0,0150000000
timer value: Single = 51 892,0100000000 Double = 51 892,0060000000 timer interval: Single = 0,0195312500 Double = 0,0160000000
timer value: Single = 51 892,0200000000 Double = 51 892,0210000000 timer interval: Single = 0,0117187500 Double = 0,0150000000
timer value: Single = 51 892,0400000000 Double = 51 892,0370000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,0500000000 Double = 51 892,0530000000 timer interval: Single = 0,0195312500 Double = 0,0160000000
timer value: Single = 51 892,0700000000 Double = 51 892,0680000000 timer interval: Single = 0,0117187500 Double = 0,0150000000
timer value: Single = 51 892,0900000000 Double = 51 892,0840000000 timer interval: Single = 0,0195312500 Double = 0,0160000000
timer value: Single = 51 892,1000000000 Double = 51 892,0990000000 timer interval: Single = 0,0117187500 Double = 0,0150000000
timer value: Single = 51 892,1100000000 Double = 51 892,1150000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,1300000000 Double = 51 892,1310000000 timer interval: Single = 0,0195312500 Double = 0,0160000000
timer value: Single = 51 892,1400000000 Double = 51 892,1460000000 timer interval: Single = 0,0117187500 Double = 0,0150000000
timer value: Single = 51 892,1600000000 Double = 51 892,1620000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,1800000000 Double = 51 892,1770000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,1900000000 Double = 51 892,1930000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,2100000000 Double = 51 892,2090000000 timer interval: Single = 0,0195312500 Double = 0,0160000000
timer value: Single = 51 892,2200000000 Double = 51 892,2240000000 timer interval: Single = 0,0117187500 Double = 0,0150000000
timer value: Single = 51 892,2400000000 Double = 51 892,2400000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,2500000000 Double = 51 892,2550000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,2700000000 Double = 51 892,2710000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,2900000000 Double = 51 892,2870000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,3000000000 Double = 51 892,3020000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,3200000000 Double = 51 892,3180000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,3300000000 Double = 51 892,3330000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,3500000000 Double = 51 892,3490000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,3600000000 Double = 51 892,3650000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,3800000000 Double = 51 892,3800000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,3900000000 Double = 51 892,3960000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,4100000000 Double = 51 892,4110000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,4300000000 Double = 51 892,4270000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,4400000000 Double = 51 892,4430000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,4600000000 Double = 51 892,4580000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,4700000000 Double = 51 892,4740000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,4900000000 Double = 51 892,4890000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,5000000000 Double = 51 892,5050000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,5200000000 Double = 51 892,5210000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,5400000000 Double = 51 892,5360000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,5500000000 Double = 51 892,5520000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,5700000000 Double = 51 892,5670000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,5800000000 Double = 51 892,5830000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,6000000000 Double = 51 892,5990000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,6100000000 Double = 51 892,6140000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,6300000000 Double = 51 892,6300000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,6400000000 Double = 51 892,6450000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,6600000000 Double = 51 892,6610000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,6800000000 Double = 51 892,6770000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,6900000000 Double = 51 892,6920000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,7100000000 Double = 51 892,7080000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,7200000000 Double = 51 892,7230000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,7400000000 Double = 51 892,7390000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,7500000000 Double = 51 892,7550000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,7700000000 Double = 51 892,7700000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,7900000000 Double = 51 892,7860000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,8000000000 Double = 51 892,8010000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,8200000000 Double = 51 892,8170000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,8300000000 Double = 51 892,8330000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,8500000000 Double = 51 892,8480000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,8600000000 Double = 51 892,8640000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,8800000000 Double = 51 892,8790000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,8900000000 Double = 51 892,8950000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,9100000000 Double = 51 892,9110000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,9300000000 Double = 51 892,9260000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,9400000000 Double = 51 892,9420000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,9600000000 Double = 51 892,9570000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 892,9700000000 Double = 51 892,9730000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 892,9900000000 Double = 51 892,9890000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,0000000000 Double = 51 893,0040000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,0200000000 Double = 51 893,0200000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,0400000000 Double = 51 893,0350000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,0500000000 Double = 51 893,0510000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,0700000000 Double = 51 893,0670000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,0800000000 Double = 51 893,0820000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,1000000000 Double = 51 893,0980000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,1100000000 Double = 51 893,1130000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,1300000000 Double = 51 893,1290000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,1400000000 Double = 51 893,1450000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,1600000000 Double = 51 893,1600000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,1800000000 Double = 51 893,1760000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,1900000000 Double = 51 893,1910000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,2100000000 Double = 51 893,2070000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,2200000000 Double = 51 893,2230000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,2400000000 Double = 51 893,2380000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,2500000000 Double = 51 893,2540000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,2700000000 Double = 51 893,2690000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,2900000000 Double = 51 893,2850000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,3000000000 Double = 51 893,3010000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,3200000000 Double = 51 893,3160000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,3300000000 Double = 51 893,3320000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,3500000000 Double = 51 893,3470000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,3600000000 Double = 51 893,3630000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,3800000000 Double = 51 893,3790000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,3900000000 Double = 51 893,3940000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,4100000000 Double = 51 893,4100000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,4300000000 Double = 51 893,4250000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,4400000000 Double = 51 893,4410000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,4600000000 Double = 51 893,4570000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,4700000000 Double = 51 893,4720000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,4900000000 Double = 51 893,4880000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,5000000000 Double = 51 893,5030000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,5200000000 Double = 51 893,5190000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,5400000000 Double = 51 893,5350000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,5500000000 Double = 51 893,5500000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,5700000000 Double = 51 893,5660000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,5800000000 Double = 51 893,5810000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,6000000000 Double = 51 893,5970000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,6100000000 Double = 51 893,6130000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,6300000000 Double = 51 893,6280000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,6400000000 Double = 51 893,6440000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,6600000000 Double = 51 893,6590000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,6800000000 Double = 51 893,6750000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,6900000000 Double = 51 893,6910000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,7100000000 Double = 51 893,7060000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,7200000000 Double = 51 893,7220000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,7400000000 Double = 51 893,7370000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,7500000000 Double = 51 893,7530000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,7700000000 Double = 51 893,7690000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,7900000000 Double = 51 893,7840000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,8000000000 Double = 51 893,8000000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,8200000000 Double = 51 893,8150000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,8300000000 Double = 51 893,8310000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,8500000000 Double = 51 893,8470000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,8600000000 Double = 51 893,8620000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,8800000000 Double = 51 893,8780000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,8900000000 Double = 51 893,8930000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,9100000000 Double = 51 893,9090000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,9300000000 Double = 51 893,9250000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,9400000000 Double = 51 893,9400000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,9600000000 Double = 51 893,9560000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 893,9700000000 Double = 51 893,9710000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 893,9900000000 Double = 51 893,9870000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 894,0000000000 Double = 51 894,0030000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 894,0200000000 Double = 51 894,0180000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 894,0400000000 Double = 51 894,0340000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 894,0500000000 Double = 51 894,0490000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 894,0700000000 Double = 51 894,0650000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 894,0800000000 Double = 51 894,0810000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 894,1000000000 Double = 51 894,0960000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 894,1100000000 Double = 51 894,1120000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
timer value: Single = 51 894,1300000000 Double = 51 894,1270000000 timer interval: Single = 0,0156250000 Double = 0,0150000000
timer value: Single = 51 894,1400000000 Double = 51 894,1430000000 timer interval: Single = 0,0156250000 Double = 0,0160000000
В выходных данных видно, что интервал, посчитанный между значениями, сохранёнными в Double, всегда чётко равен одному и тому же значению, интервал в Single из-за ошибок округления "колбасит" относительно верного значения в обе стороны, причём на значительную в процентном отношении величину.
Что касается самого интервала "тика" таймера, то он в разное время и на разных системах был замечен равным 0,015 сек., 0,01 сек. и 0,001 сек., закономерность по зависимости не выявил (подсказал бы кто).
P. S. В VBScript функция Timer действительно возвращает значения типа Single.
Сначала собирался сделать кросс-пост в разделе VBScript, но писать, что функция Timer работает ровно так, как указано в документации, смысла нет.