Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 同一日期时间组以不同的双精度存储_Excel_Vba - Fatal编程技术网

Excel 同一日期时间组以不同的双精度存储

Excel 同一日期时间组以不同的双精度存储,excel,vba,Excel,Vba,我试图比较日期时间组(DTG)。如下图所示,相同的DTG存储为略有不同的双精度 2016年11月13日13:22:22=42687.5571990741000000 2016年11月13日13:22:22=42687.5571990162000000 在VBA中比较它们是不可能的。如果A=B,那么。。。。不起作用。 以前有人遇到过这种情况吗?对不匹配的解释 日期和时间存储为整数(天)和小数部分(时间)。时间是一天的一部分。因此,6小时是一天的1/4=十进制的0,25。更多信息请参阅 M精确到最近

我试图比较日期时间组(DTG)。如下图所示,相同的DTG存储为略有不同的双精度

2016年11月13日13:22:22=42687.5571990741000000
2016年11月13日13:22:22=42687.5571990162000000

在VBA中比较它们是不可能的。如果A=B,那么。。。。不起作用。
以前有人遇到过这种情况吗?

对不匹配的解释 日期和时间存储为整数(天)和小数部分(时间)。时间是一天的一部分。因此,6小时是一天的1/4=十进制的0,25。更多信息请参阅

M精确到最近的秒 要将日期时间舍入到最接近的秒,可以使用

返回四舍五入到所需倍数的数字。
语法:MROUND(数字,多个)

在下图中,您可以看到日期和时间的双值+一些其他示例。下一步是相同的,只是格式化为带有毫秒的日期和时间。接下来是Mround到seconds的转换

对于D4,公式为:
=MROUND(B4;1/$B$1)

注意:由于您的语言设置,您可能需要使用


您可以在VBA代码中使用此知识和函数。

尝试使用
CDate()
值,以便在比较之前将其转换为日期。您希望比较的精确度如何?天?秒?毫秒?准确的数字的小数部分是一天24小时的小数部分。例:
42687.5
is 13/11/2016 12:00:00不起作用,但谢谢你的提示。我不知道CDate是个东西。我认为我需要将我的值四舍五入到最接近的秒,因为它们被定义为ms。