이전에 본 적이없는 경우가 있습니다..NET 소수점 형식은 소스에 따라 다르게 나타납니다.
코드를 통해 10 진수 값을 지정하는 경우가 있습니다. 같은 필드가 EntityFramework에서 할당 될 때 foo.DecimalField = 200M;
내가 어떤 포맷이나 문화이 ToString()
값이, 내가 다른 경우 값 "200"
를 얻을, 디버거는 여전히 필드의 정확한 값이 200M
것을 말한다 하지만 ToString()
을 입력하면 "200.00"
여기에 부동 소수점 문제가 있거나 디버거에 숨겨진 소수가있는 경우 표시됩니다.
하지만 고정 소수점 십진 형식을 사용하고 있으므로 어떻게 될까요? 웹 서버 또는 문화 나 그와 관련된 문제에 영향을 줄 수있는 것이 없습니다.
무엇이 누락 되었습니까? 는 소수점 타입 동작합니다는 다르게 초기화 방법에 따라 수 Double
달리
아마도 SSCCE –
을 만들 수 있습니다. 'decimal'은 여전히 부동 소수점 유형입니다. 이진수가 아닌 십진수입니다. – dreamlax
10 진수는 연산을 수행 할 때 정밀도를 유지하므로 다른 정밀도로 계산하여 두 숫자를 얻은 경우 예상되는 동작입니다. –