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))
我正在使用浮点数计算日期和时间。但是,我注意到计算出的值与预期不符。这是代码片段。
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))