double? d = 123.4;
decimal? dec = (decimal?)d; //dec is null
십이의 null 값인가?
double? d = 123.4;
decimal? dec = (decimal?)d; //dec is null
십이의 null 값인가?
내가 .NET 2.0 및 .NET 4.0에서 테스트했습니다, 그리고 예상대로 내가 123.4
으로 dec
를 얻을. 당신은 아마도 브레이크 포인트가 너무 높지 않을 것이라고 확신합니까?
감사합니다. 다시 테스트하고 Visual Studio/디버거의 이상한 동작으로 보입니다. 두 번째 줄을 실행 한 후 dec 변수로 마우스를 가져 가면 dec은 null이지만 실제 dec의 값은 예상대로 123.4입니다 (예 : 콘솔에 쓰는 경우). 그게 내가 먼저 작동하지 않는다고 믿게합니다. –
캐스팅에서 호출되는 암시 적 변환이 실패하고, Decimal 값을 null 값으로 남겨 두는 것이 좋습니다. 가장 잘 추측되는 것은 잘림/반올림 된 값이 아닌 값입니다.
십이, null가 아닌 자사의 123.4
아니요. 다른 곳에 오류가 있어야합니다.
나는 이것이 똑같은 것을 지적 할 것이다. 귀하의 코드는 예상대로 123,4를 제공합니다. 그것은 잘 작동합니다.
난 그냥이 시도 말할 수있다 :)하지만 결과는 동일합니다 : 123,4
double? d = 123.4;
decimal? dec = (decimal?)d.Value;
이 문제를 재현 할 수 없습니다. 12 월은 123.4입니다. – CodesInChaos