具有相同数量的TotalDays的TimeSpan怎么会给出不同的tikcs值?下面是我在运行我的应用程序后在debuger上看到的内容。
Ticks: 25920000000000
TotalDays: 30.0

在几次单击之后,当我在同一位置点击断点时,值看起来像这样:
Ticks: 25920000000000
TotalDays: 29.999999999999996

由于我使用了总天数值,后来我突然想到,一次是30天,另一次是29天的‘相同’的TimeSpan滴答?!
这只出现在我的Corei7 (win7 x64)工作站上,在.NET 3.5框架配置上的'AnyCpu‘上(在x86上始终是30,在另外3个工作站29上也不会发生)。有什么想法吗?
发布于 2014-01-31 15:50:11
嗯,它是一个双精度型(所以当你得到TotalDays值时,会有一个从long -Ticks到double的转换),所以你可能会遇到浮点精度的“问题”。
如果需要int,请使用TimeSpan.Days
TotalDays是一个只读属性,它使得类似于
return (double) this._ticks * (0.0 / 1.0);(其中_ticks是长整型)
Days也是一个只读属性:
return (int) (this._ticks / 864000000000L);https://stackoverflow.com/questions/21474878
复制相似问题