Добрый день.
DAX 4.0 - Kernel version: 4.0.2503.516, Application version: 4.0.2501.347
Столкнулся с этой ошибкой при заливке остатков из 1С из файла excel, при обработке чисел с плавающей запятой малой величины, функция возвращает некорректный результат.
После анализа стало видно что ошибка возникает, когда в обрабатываемых данных из excel не стоит разделитель.
Вот демонстрация ошибки:
X++:
static void errorStr2num(Args _args)
{
Qty qty1, qty2, qty3;
;
qty1 = str2num('1e-3');
qty2 = str2num('5.6e-2');
qty3 = str2num('1.e-3');
info(strFmt('%1 %2', num2str(qty1,0,3,2,0), 'Ошибка ожидаем 0,001'));
info(strFmt('%1 %2', num2str(qty2,0,3,2,0), 'Без ошибки'));
info(strFmt('%1 %2', num2str(qty3,0,3,2,0), 'Без ошибки'));
}
Причём в 3-ке MBS Axapta 3.0 Build #1951.7609/514-320 SP4/OP032-196 всё работало корректно.
Как вариант обхода ошибки можно использовать функцию any2real, или в обрабатываемом файле заменить разделитель с запятой на точку, это приводит к тому что данные из excel (пробовал на 2007-ом) подтягиваются не в экспоненциальном формате.
Подскажите исправлен ли баг в последующих версиях, если нет как зарегистрировать эту ошибку в microsoft?