Несколько мест в DAX2012 видел где real прямо приводится к net double и в некоторых комментарии про ошибки округления в CIL.
Вот, навскидку пример: метод price2Amount класса PriceDisc
X++:
// As the precision are different between data type "Real" in X++ and "Decimal" in IL, it may result in rounding defference when
// running X++ and IL. To resolve this issue, we convert "Decimal" to "Double" here if the code was running in IL, thus there is
// a precision down, and the precission will extremely like data type "Real" in X++.
if (xSession::isCLRSession())
{
returnAmount = System.Convert::ToDouble(returnAmount);
}