LibreOffice 浮点精度

LibreOffice floating point precision

我正在使用浮点数计算日期和时间。但是,我注意到计算出的值与预期不符。这是代码片段。

Dim sTemp As Single, sLineDateTime As Single
Dim strTemp As String

strTemp = "2019-02-25"
sLineDateTime = DateValue(DateSerial(Left(strTemp, 4), Mid(strTemp, 6, 2), Right(strTemp, 2)))
strTemp = ""21:47:42"
REM TODO Time is being rounded off. Check
sTemp = TimeValue(TimeSerial(Left(strTemp, 2), Mid(strTemp, 4, 2), Right(strTemp, 2)))
sLineDateTime = sLineDateTime + sTemp

上述计算的输出为 sLineDateTime="43521.906250",转换为 date/time 后为 "Mon 25-Feb-2019 09:45:00 PM"。预期的实际值为“43521.908125”,转换为错误“0.001875000001746”或换句话说 2 分 42 秒。关于如何克服这个问题有什么建议吗?

我在发布之前尝试过,但没有帮助。我转而使用现在非常适合我的日期。这是代码。

        strTemp = "2019-02-25"
dLineDateTime = DateSerial(Left(strTemp, 4), Mid(strTemp, 6, 2), Right(strTemp, 2))
strTemp = "21:47:42"
dLineDateTime = dLineDateTime + TimeSerial(Left(strTemp, 2), Mid(strTemp, 4, 2), Right(strTemp, 2))