28.06.2010, 10:20 | #1 |
Сам.AX
|
Ошибка в функции str2num при обработке данных в экспоненциальном формате (плавающей запятой, научной нотацией).
Добрый день.
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?
__________________
"Считать метафору доказательством, поток праздных слов источником истины, а себя оракулом - это заблуждение, свойственное всем нам." Поль Валери Последний раз редактировалось driller; 28.06.2010 в 10:22. |
|
|
За это сообщение автора поблагодарили: kashperuk (5). |
|
Похожие темы | ||||
Тема | Ответов | |||
Ошибка в Данных компании DAX2009 | 8 | |||
Ошибка при доступе к подключению к базе данных | 11 | |||
Ошибка в формате числа. | 7 | |||
Ошибка при обработке С-Ф | 7 | |||
Русская локализация Axapta 3 ? | 59 |
|