저는 수학 라이브러리에서 일하고 있습니다. double
으로 작업 할 때의 고유 한 문제로 인해 모든 동등 비교 유형을 a == b
으로 지정하여 Math.Abs(a - b) <= epsilon
으로 코딩하고 있습니다.const 필드에서 과학 표기법을 사용하는 방법?
또한 기본적으로으로, 최대의 정밀도로 서식이 지정된 문자열을 생성하고 싶습니다. 즉, 엡실론이 0.001
인 경우 기본 형식을 N3
으로 지정합니다.
행복하게 나는 다음과 같은 한 :
public static class Math3D
{
internal const int ROUND = 3;
public const double Epsilon = 1e-ROUND;
}
을 ... 그리고 컴파일 오류가 발생했습니다. 명백하게 이것은 허용되지 않습니다.
이 제한 사항으로 인해 상호 의존성 상수를 const로 정의 할 수있는 방법이 없습니다. 분명히 내가 readonly 필드로 Epsilon
을 정의 할 수 있지만 그렇게하는 것은 어떻게 든 개념적으로 잘못되었다고 느낀다. 이 작업을 수행하는 확실한 방법이 누락 되었습니까?
리터럴 오류 란 무엇입니까? – rae1
당신은 실제로'Epsilon'을위한 수학을하고 0.001의 값을 만들지 않습니다. –
'readonly' 필드를 사용하는 것이 잘못된 이유는 무엇입니까? – xxbbcc