DateTime.Now.AddMilliseconds(1.5); // adds 2 milliseconds
这到底是怎么想的?如果一个方法不能处理小数部分,却接受double参数,这种做法看起来极其糟糕。为什么不用AddTicks函数并正确处理小数呢?或者至少采用int类型参数,这样对调用方更透明?
我猜他们采用这种方式肯定有好的原因,但我无法想出是什么。有人可以提供任何见解吗?
编辑:为了进一步强调这一点:
AddSeconds(1.5); // Adds 1500 milliseconds
TimeSpan
的各种From
工厂方法也会进行四舍五入,尽管其分辨率更高。我只能推测 CLR 团队认为这种四舍五入是开发人员所期望的。 - Richard