首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TimeSpan Bug?

TimeSpan Bug?
EN

Stack Overflow用户
提问于 2014-01-31 15:45:54
回答 1查看 253关注 0票数 4

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

代码语言:javascript
复制
Ticks: 25920000000000
TotalDays: 30.0

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

代码语言:javascript
复制
Ticks: 25920000000000
TotalDays: 29.999999999999996

由于我使用了总天数值,后来我突然想到,一次是30天,另一次是29天的‘相同’的TimeSpan滴答?!

这只出现在我的Corei7 (win7 x64)工作站上,在.NET 3.5框架配置上的'AnyCpu‘上(在x86上始终是30,在另外3个工作站29上也不会发生)。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2014-01-31 15:50:11

嗯,它是一个双精度型(所以当你得到TotalDays值时,会有一个从long -Ticksdouble的转换),所以你可能会遇到浮点精度的“问题”。

如果需要int,请使用TimeSpan.Days

TotalDays是一个只读属性,它使得类似于

代码语言:javascript
复制
return (double) this._ticks * (0.0 / 1.0);

(其中_ticks是长整型)

Days也是一个只读属性:

代码语言:javascript
复制
return (int) (this._ticks / 864000000000L);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21474878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档