Eric写了一个关于DateTime的DateTime。乔恩·斯基特在评论他的文章时
只要大家都知道,DateTime有太多的精度,我没有问题。精确,而非精确
他这么说是什么意思?
处理DateTime精度问题和准确性问题意味着什么?
发布于 2012-12-17 06:28:11
他在那篇文章中用错了准确性这个词。错误的准确性确实意味着系统的偏差,例如,如果你的计算机时钟关闭一分钟会发生什么。Lippert的文章真正说明的是假精度。
换句话说,DateTime结构非常精确,因为它能够表示仅100纳秒的差。但是,您将从DateTime.Now获得的值仅在16毫秒内精确。但是给出的数字仍然具有DateTime所能表示的全部精度。这就产生了一个问题,因为很容易假设DateTime.Now返回的值具有DateTime结构的全部精度,而不是花时间来了解DateTime.Now获取其值的源提供了什么精度。
DateTime是一个简单的数据结构,没有固有的精确性,因此谈论它是没有意义的。(一公斤的精确度是多少?)最好谈谈系统时钟的精确程度。(例如,这个比例有多精确?)但这可能因每台计算机而异,而且与.NET中的数据结构没有任何关系。
发布于 2012-12-17 06:11:19
当然,拥有如此高的精度所带来的问题是,很容易假定给定的值与精确的值一样准确。但这根本不合理!我可以用一个双精度浮点数来表示我的身高为1.799992352094米;虽然精确到万亿米,但它只精确到大约百分之一米,因为我没有一个装置,可以测量我的高度达到十亿分之一米,甚至千分之一米。这里的精度比精确度高得多。
来源
https://stackoverflow.com/questions/13909123
复制相似问题