|
|
|
|
#1 |
|
Участник
|
Встречал похожие приколы в других местах.
Были проблемы для anytype для неинициализированных значений. Может у вас там null приходил ? а если просто присвоить значение ? Например real retReal; retReal = _sysObj; // или так retReal = _sysObj as System.Double; // или так retReal = any2real(_sysObj as System.Double); ret = retReal; |
|
|
|
| За это сообщение автора поблагодарили: Raven Melancholic (2). | |
|
|
#2 |
|
Участник
|
Насколько я понимаю 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));
}Интересно почему он 0.0 в nullValueBaseType конвертирует в System.Double, а не в System.Decimal. А если вот такой код будет, то он также будет возвращать System.Double ? X++: if (xSession::isCLRSession()) { return realValue; }
__________________
Sergey Nefedov |
|
|
|
| За это сообщение автора поблагодарили: Logger (5), Raven Melancholic (2). | |
| Теги |
| system.decimal |
|
|
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|