Показать сообщение отдельно
Старый 12.11.2023, 14:23   #4  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
365 / 542 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Насколько я понимаю real соответствует типу System.Decimal, а не System.Double (https://learn.microsoft.com/en-us/dy...eveloper/reals).

Думается, что если использовать Decimal, то должно работать нормально (т.е. возвращать real):
X++:
if (sysObj is System.Double)
{
   ret = ClrInterop::getAnyTypeForObject(System.Convert::ToDecimal(sysObj));
}
Согласен с Logger, any2real тоже выглядит вполне рабочим вариантом.

Интересно почему он 0.0 в nullValueBaseType конвертирует в System.Double, а не в System.Decimal.

А если вот такой код будет, то он также будет возвращать System.Double ?
X++:
if (xSession::isCLRSession())
{
    return realValue;
}
__________________
Sergey Nefedov
За это сообщение автора поблагодарили: Logger (5), Raven Melancholic (2).