http://msdn.microsoft.com/en-us/library/system.double.epsilon.aspx
如果创建一个自定义算法来确定是否可以将两个浮点数视为相等,则必须使用大于Epsilon常量的值来确定两个值相等的可接受的绝对差值.(通常,差异幅度比Epsilon大很多倍.)
那么这不是真正可以用于比较的ε吗?我真的不明白MSDN的措辞.
它可以在这里的示例中用作epsilon吗?- 浮动和双重比较最有效的方法是什么?
最后这看起来非常重要,所以我想确保我有一个可靠的实现平等,大于,小于,小于或等于,大于或等于.
(在尝试分析decimal
工作原理时)&&阅读@jonskeet文章 并看到msdn,并思考过去4个小时后,
我有一些问题:
在这个链接中,他们说的很简单:
1.5 x 10^2
有2
重要数字
1.50 x 10^2
有3
重要数字.
1.500 x 10^2
有4
重要数字等...
好的......我们明白了.
来自jon的文章:
sign * mantissa / 10^exponent
Run Code Online (Sandbox Code Playgroud)
像往常一样,符号只是一个位,但有96位尾数和5位指数
^ _ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^___ ^^^^^
1 _ 96 5
Run Code Online (Sandbox Code Playgroud)
好
所以max mantiss val = 2^96-1 = 79228162514264337593543950335
这是:( 7.9228162514264*10^28
根据我的iphone ...在windows calc中无法看到指数表示.)
注意 :
7.9228162514264*10^28
有14位有效数字(根据以上例子)
现在指数为5位的部分是无关紧要的,因为它在分母中 - 所以我需要最小值为2 ^ 0
问题#1:
msdn说:
28-29 significant digits
但根据我的样本(1.500 x 10^2
有 …
什么是一个可以代表的第二个最小值decimal
?这是大于Decimal.MinValue
和小于decimal
可以表示的任何其他值的值.如何在C#中获取此值?谢谢!