Date lotusscript中的数据处理算法

Date lotusscript中的数据处理算法,date,lotusscript,Date,Lotusscript,注意:我没有使用notesdatetime类来提高效率。在lotusscript中使用本机算法的速度快10倍,这在我的应用程序中非常关键。 我从两个日期/时间开始,通过使用TimeNumber向LotusScriptdate变量添加15分钟,将其中一个调整为与另一个相等 ahEnd怎么可能大于aStart?运行代码并查看 Dim aStart As double, ahStart As Double, ahEnd As double aStart = CDat("18/May/2013 10:

注意:我没有使用
notesdatetime
类来提高效率。在lotusscript中使用本机算法的速度快10倍,这在我的应用程序中非常关键。

我从两个日期/时间开始,通过使用
TimeNumber
向LotusScript
date
变量添加15分钟,将其中一个调整为与另一个相等

ahEnd
怎么可能大于aStart?运行代码并查看

Dim aStart As double, ahStart As Double, ahEnd As double

aStart = CDat("18/May/2013 10:45:00: AM")
ahStart = CDat("18/May/2013 10:15:00 AM")
ahEnd = ahStart + TimeNumber (0, 30, 0)

If ahEnd > aStart Then
    MsgBox ahEnd & " is greater than " & aStart & " ?? Incorrect!"
Else 
    MsgBox ahEnd & " is NOT greater than " & aStart & ". Correct!"
End If

将变量转换为字符串然后再转换为双精度似乎可以解决这个问题,但我仍然不明白为什么。ie:If(cDbl(cStr(ahEnd))>cDbl(cStr(aStart))然后…双精度是浮点数。它们没有你认为它们有的精确值。所以加30分钟就是加上最接近的近似值。一个本地比较看到了不平等。转换将值四舍五入,使它们相等。谢谢Richard,这可以解释这一点。那么转换是否足以用于将日期/时间向下比较到秒(即小时:分钟:秒后不丢失精度)?我相信是这样的。