gpt4 book ai didi

c# - 时间跨度错误..?

转载 作者:行者123 更新时间:2023-11-30 12:46:06 24 4
gpt4 key购买 nike

具有相同数量 tikcs 的 TimeSpan 怎么可能给出不同的 TotalDays 值?以下是我在运行我的应用程序后在调试器上看到的内容。

Ticks: 25920000000000
TotalDays: 30.0

enter image description here

再点击几次后,当我在同一个地方遇到断点时,值看起来像这样:

Ticks: 25920000000000
TotalDays: 29.999999999999996

enter image description here

因为我后来使用了总天数值,它让我震惊,一次是 30 天,另一次是 29 天,因为“相同”的 TimeSpan Ticks?!

这仅发生在我的 Corei7 (win7 x64) 工作站上,在 .NET 3.5 框架配置的“AnyCpu”上(在 x86 上始终为 30,在其他 3 个工作站上也没有出现 29)。有任何想法吗?

最佳答案

好吧,它是 double 的(因此当您获得 TotalDays 时,从 long -Ticks- 转换为 double 值),所以你可能有浮点精度“问题”。

如果你想要一个整数,使用TimeSpan.Days

TotalDays 是只读属性,类似于

return (double) this._ticks * (0.0 / 1.0);

(其中 _ticks 是长整数)

Days 也是只读属性:

return (int) (this._ticks / 864000000000L);

关于c# - 时间跨度错误..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21474878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com