public double TotalMilliseconds
{
[__DynamicallyInvokable]
get
{
double num = (double)this._ticks * 0.0001;
if (num > 922337203685477.0)
{
return 922337203685477.0;
}
if (num < -922337203685477.0)
{
return -922337203685477.0;
}
return num;
}
}
-922337203685477.5808&lt; = ticks * 0.0001&lt; = 922337203685477.5807
为什么会削减小数部分?
pinckerman说“双精度为15-16位”。但是为什么TotalSeconds不会削减小数部分?
public double TotalSeconds
{
[__DynamicallyInvokable, TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get
{
return (double)this._ticks * 1E-07;
}
}
答案 0 :(得分:0)
你应该检查类型精度:
MSDN double definition。
正如您所看到的,double
具有15-16位精度,并且您将大部分精度用于整数部分。
答案 1 :(得分:0)
我看过Mono。
public double TotalMilliseconds
{
get
{
return (double) _ticks / TicksPerMillisecond;
}
}
它似乎只是一个特定于工具的。