AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.02.2007, 17:46   #1  
Alenka is offline
Alenka
Участник
 
58 / 25 (1) +++
Регистрация: 19.04.2006
? Не хватает количества значащих цифр в действительных числах
В Axapte есть единственный действительный тип данных - real.
Встречался ли кто-нибудь с проблемой нехватки количества значащих цифр в нем? Поделитесь путями решения.
Старый 01.02.2007, 17:55   #2  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
Ужас! А сколько знаков необходимо.
Старый 01.02.2007, 17:55   #3  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Что это вы там такое считаете, что вам 16 разрядов не хватает?
Старый 01.02.2007, 18:01   #4  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Думаю выхода нет.
ЗЫ: Цель фирмы наверна заработать все деньги в мире, вот и думают заранее
Старый 01.02.2007, 18:05   #5  
Alenka is offline
Alenka
Участник
 
58 / 25 (1) +++
Регистрация: 19.04.2006
Дело в том, что переносили алгоритм из 1С в Axapta. В 1С - больше 16 цифр. В результате получилось, что один и тот же алгоритм в двух разных системах на одних и тех же входных данных выдает совершенно разные результаты. Причем неправильные результаты выдает именно Axapta. Порядок цифр результатов - 10^20 вместо десятков.
Старый 01.02.2007, 18:19   #6  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,295 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Цитата:
Сообщение от Alenka Посмотреть сообщение
Дело в том, что переносили алгоритм из 1С в Axapta. В 1С - больше 16 цифр. В результате получилось, что один и тот же алгоритм в двух разных системах на одних и тех же входных данных выдает совершенно разные результаты. Причем неправильные результаты выдает именно Axapta. Порядок цифр результатов - 10^20 вместо десятков.
И что ж Вы такое считаете? 20 значащих цифр.... Это где же такая точность?
__________________
Михаил Андреев
https://www.amand.ru
Старый 01.02.2007, 18:21   #7  
MironovI is offline
MironovI
Участник
 
724 / 77 (4) ++++
Регистрация: 30.05.2005
Никак ЦУП решил перейти с 1С-а на Аксапту и не хватает цифирь на расчет баллистики выхода на орбиту ) Ну а если серьезно, может натолкнет на мысль - а Аксапте очень большие и очень маленькие значения используются в связке с каким-нибудь множителем - допустим курсы валют задаются за 100 единиц валюты, или цена товара может быть указана за несколько штук товара, вобщем в эту сторону наверное надо двигаться..

Последний раз редактировалось MironovI; 01.02.2007 в 18:23.
Старый 01.02.2007, 18:26   #8  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Sada Посмотреть сообщение
ЗЫ: Цель фирмы наверна заработать все деньги в мире, вот и думают заранее
Сумма ВВП по всему миру: 55,5 триллионов USD ~ 1.5*10^15р. На копейки уже не хватит.
Старый 01.02.2007, 18:30   #9  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,295 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Цитата:
Сообщение от oip Посмотреть сообщение
Сумма ВВП по всему миру: 55,5 триллионов USD ~ 1.5 * 10^15р.
Хм. Может, они в белорусских зайцах считают
__________________
Михаил Андреев
https://www.amand.ru
Старый 01.02.2007, 18:35   #10  
Vals is offline
Vals
Аманд
Аватар для Vals
Компания АМАНД
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2009
 
1,766 / 507 (20) +++++++
Регистрация: 27.02.2002
Адрес: Pass partout, Москва
10*(степень)21 - секстиллион [зетта-, цепто-]

10^603 - дуцентиллион
10^903 - трецентиллион
10^1203 - квадрингентиллион
10^1503 - квингентиллион
10^1803 - сесцентиллион
10^2103 - септингентиллион
10^2403 - окстингентиллион
10^2703 - нонгентиллион
10^3003 - миллиллион (или милиаиллион)
10^6003 - дуомилиаллион
10^9003 - тремиллиаллион
10^308760 - дуцентдуомилианонгентновемдециллион
10^3000003 - милиамилиаиллион
10^6000003 - дуомилиамилиаиллион
10^10^100 - гуголплекс

Последний раз редактировалось Vals; 01.02.2007 в 18:40.
Старый 01.02.2007, 18:40   #11  
Vals is offline
Vals
Аманд
Аватар для Vals
Компания АМАНД
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2009
 
1,766 / 507 (20) +++++++
Регистрация: 27.02.2002
Адрес: Pass partout, Москва
Цитата:
Может, они в белорусских зайцах считают
А уних бабушка на гуталиновой фабрике работает и этого гуталина там завались.


Цитата:
Это где же такая точность?
1. Деньги счёт любят.
2. Копейка к копейке рубль даёт.
3. А с каждой транзакции по копейке вот и насобирали

Последний раз редактировалось Vals; 01.02.2007 в 18:53.
Старый 01.02.2007, 19:17   #12  
Alenka is offline
Alenka
Участник
 
58 / 25 (1) +++
Регистрация: 19.04.2006
Все это, конечно, интересно. Но хотелось бы получить дельный совет. Понятно (теперь), что Axapta не переносит серьезных или даже не очень серьезных математических вычислений. На нет и суда нет.
Но хочется же найти выход!!!
Старый 01.02.2007, 19:24   #13  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
397 / 478 (16) +++++++
Регистрация: 27.02.2006
Адрес: Дания
Скажите хоть, что именно этот алгоритм считает - что на входе, что на выходе? Неужели такие числа в ваших 1С использовались не только в целях тестирования?
Старый 01.02.2007, 19:25   #14  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Не, ну правда, очень интересно, где это столько разрядов требуется?!

По теме: если очень хочется, можно:
1) Подумать, а действительно ли так уж нужны числа с таким большим кол-вом разрядов? Может можно все и с 16-ю разрядами реализовать?
2) Еще раз подумать.
3) Вынести расчет за пределы Аксапты.
4) Хранить числа с большИм количеством разрядов в двух (трех, четырех...) полях (или контейнере) и для их обработки написать свои функции, реализующие простейшие математические операторы.

"Хочется" - не всегда означает, что это необходимо. Сложно поверить, что такие числа появляются на входе или на выходе алгоритма. А если это просто промежуточные значения - всегда можно чуть "подправить" алгоритм.
За это сообщение автора поблагодарили: Alenka (1).
Старый 01.02.2007, 19:29   #15  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,295 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Цитата:
Сообщение от Alenka Посмотреть сообщение
Все это, конечно, интересно. Но хотелось бы получить дельный совет. Понятно (теперь), что Axapta не переносит серьезных или даже не очень серьезных математических вычислений. На нет и суда нет.
Но хочется же найти выход!!!
Аксапта для таких целей и не предназначена. Это ERP система, а не система расчёта числа Пи до десятитысячного знака.
И что ж за алгоритм у Вас такой? Какой смысл в такой точности?
А выход именно в том, чтобы разобраться, что за алгоритм и зачем такая точность.
__________________
Михаил Андреев
https://www.amand.ru
Старый 01.02.2007, 19:31   #16  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,295 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
4) Хранить числа с большИм количеством разрядов в двух (трех, четырех...) полях и для их обработки написать свои функции, реализующие простейшие математические операторы.

А скорость обработки какая будет? Всё равно, что воду напёрстками носить.
__________________
Михаил Андреев
https://www.amand.ru
Старый 01.02.2007, 19:33   #17  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Михаил Андреев Посмотреть сообщение
А скорость обработки какая будет? Всё равно, что воду напёрстками носить.
Ну так кому-то же очень хочется.
Старый 01.02.2007, 21:17   #18  
Alenka is offline
Alenka
Участник
 
58 / 25 (1) +++
Регистрация: 19.04.2006
Для интересующихся: существует такой метод - метод Гоморри, у нас он используется для автоматического подбора нужного количества товара упаковками. Действительно, такая высокая точность нужна для промежуточных расчетов, а входные и выходные данные для данного метода практически всегда целые числа.
Старый 01.02.2007, 22:59   #19  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,295 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Цитата:
Сообщение от Alenka Посмотреть сообщение
Для интересующихся: существует такой метод - метод Гоморри, у нас он используется для автоматического подбора нужного количества товара упаковками. Действительно, такая высокая точность нужна для промежуточных расчетов, а входные и выходные данные для данного метода практически всегда целые числа.
Понятно.
Тогда сразу огорчу.
Для некоторого набора данных Вам и 16 цифр значащих будет мало. Там используется выделение дробных частей из разниц вещественных чисел. Попробуйте выделить дробную часть из выражения типа 1+2/27-1/14. В десятичной системе исчисления будет очень нетривиально. Точность нужна нехилая. Но ручками считается легко и непринуждённо.
Так что, приношу свои извинения oip - при правильной постановке задачи его метод будет более эффективен и довольно быстр.
Потому вариантов вижу несколько. Либо вывести алгоритм за пределы Аксапты, например, написав всё это на каком-то другом языке, поддерживающем высокую точность чисел в расчётах. Либо поменять алгоритм. Либо сделать свой обработчик данного алгоритма на базе целых чисел (обработчик дробей).
Кстати, в интернете полно описаний разного рода алгоритмов для такой задачи.
__________________
Михаил Андреев
https://www.amand.ru

Последний раз редактировалось Михаил Андреев; 01.02.2007 в 23:23.
За это сообщение автора поблагодарили: Alenka (1).
Старый 02.02.2007, 09:27   #20  
Alenka is offline
Alenka
Участник
 
58 / 25 (1) +++
Регистрация: 19.04.2006
Спасибо за советы Михаилу Андрееву и oip!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Каких прав не хватает? NNB DAX: Администрирование 3 27.06.2008 11:19
Расчёт зарплаты «не хватает виртуальной памяти». 3oppo DAX: Функционал 16 25.07.2005 10:12
Товарная накладная - непонятный алгоритм умножения количества на стоимость ATimTim DAX: Функционал 4 11.08.2004 16:59
При изменении количества в заявке ошибка создания партии. ddadream DAX: Функционал 0 17.10.2003 15:31
Неправильный подсчет количества в распечатке Счета ddadream DAX: Программирование 0 28.01.2002 12:42
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:48.