我最近在.net timespan实现中遇到了一些奇怪的行为.
TimeSpan test = TimeSpan.FromMilliseconds(0.5);
double ms = test.TotalMilliseconds; // Returns 0
Run Code Online (Sandbox Code Playgroud)
FromMilliseconds采用double作为参数.但是,似乎内部的值是四舍五入的.
如果我使用5000个滴答(.5毫秒)实例化新的时间跨度,则TotalMilliseconds的值是正确的.
查看反射器中的TimeSpan实现会发现输入实际上已经转换为long.
为什么Microsoft设计FromMilliseconds方法采用double参数而不是long(因为在实现时,double值是无用的)?
如何计算给定列表的平均值,其内容如下所述:
06:56
06:58
06:55
06:54
06:54
06:53
06:55
06:53
06:58
06:54
06:58
06:55
06:54
06:50
06:54
06:57
Run Code Online (Sandbox Code Playgroud)
任何的想法 ?!?