我在一个数学库中工作,由于使用的固有问题,double
我将所有相等比较类型编码a == b
为Math.Abs(a - b) <= epsilon
.
此外,默认情况下,我希望以考虑的最大精度生成格式化字符串。也就是说,如果epsilon是0.001
我希望我的默认格式是N3
.
很高兴我做了以下事情:
public static class Math3D
{
internal const int ROUND = 3;
public const double Epsilon = 1e-ROUND;
}
...我得到一个编译错误。显然这是不允许的。
有了这个限制,我看不出我可以将两个相互依赖的常量都定义为 const。显然我可以定义Epsilon
为只读字段,但我觉得这样做在概念上是错误的。我是否错过了如何做到这一点的明显方法?