gpt4 book ai didi

c# - TimeSpan 与毫秒精度的比较

转载 作者:太空狗 更新时间:2023-10-30 00:40:34 27 4
gpt4 key购买 nike

我在这里碰到了一些非常奇怪的东西,但我不确定是不是我对 TimeSpan API 的了解有误。以下打印出 false,我不确定为什么:

var foo = TimeSpan.FromMilliseconds(123.34d);
var bar = TimeSpan.FromMilliseconds(123.33d);
Console.WriteLine(foo > bar);

以下输出 true:

var foo = TimeSpan.FromMilliseconds(123.34d);
var bar = TimeSpan.FromMilliseconds(123.33d);
Console.WriteLine(foo == bar);

TimeSpan.FromMilliseconds 在进行比较时不考虑毫秒精度吗?

最佳答案

TimeSpan 只是将您传递给它的毫秒数四舍五入,因此 123.33123.34 最终都表示 123 毫秒的时间跨度。 123.5 将四舍五入为 123 毫秒。

如果您需要更高的精度,请自己用刻度数进行计算:

var foo = TimeSpan.FromTicks((long)(123.34*TimeSpan.TicksPerMillisecond));
var bar = TimeSpan.FromTicks((long)(123.33*TimeSpan.TicksPerMillisecond));
Console.WriteLine(foo > bar);

现在您的程序生成 True ( demo )。

关于c# - TimeSpan 与毫秒精度的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26571898/

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