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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.07.2007, 15:52   #1  
SerAl is offline
SerAl
Участник
 
163 / 44 (2) +++
Регистрация: 24.06.2004
Адрес: г. Москва
Округление
X++:
client server static int real2int(real _realValue)
{
    return any2int(_realValue);
    /*
    Note that this is equivalent of any2int(trunc(_realValue)) meaning that no rounding is performed

    Examples:
    info(strfmt("%1", real2int(123.456)));  // returns 123
    info(strfmt("%1", real2int(123.756)));  // returns 123
    info(strfmt("%1", real2int(-123.456))); // returns -123
    info(strfmt("%1", real2int(-123.756))); // returns -123
    */
}
А есть функция эквивалентная any2int(trunc(_realValue))?
Старый 06.07.2007, 16:18   #2  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
any2int
Старый 06.07.2007, 16:24   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
То ли я дурак, то ли вы что-то напутали.

Есть А. Возвращает В.
Вы спрашиваете, есть ли какое-то Х, которое возвращает В?

Старый 06.07.2007, 16:24   #4  
SerAl is offline
SerAl
Участник
 
163 / 44 (2) +++
Регистрация: 24.06.2004
Адрес: г. Москва
Цитата:
Сообщение от belugin Посмотреть сообщение
any2int
По Вашему any2int(trunc(_realValue)) == any2int(realValue)?
Старый 06.07.2007, 16:28   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от SerAl Посмотреть сообщение
По Вашему any2int(trunc(_realValue)) == any2int(realValue)?
А для какого числа это не работает?

Код:
real x = 1234.5;
;
info("belugin " +
    (( any2int(trunc(x)) ==  any2int(x)  )  ? "прав" : "не прав")
);
найдите x, который подтвердит мою неправоту
За это сообщение автора поблагодарили: SerAl (1), oip (2).
Старый 06.07.2007, 16:29   #6  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от SerAl Посмотреть сообщение
По Вашему any2int(trunc(_realValue)) == any2int(realValue)?
Именно.
any2int отбрасывает у действительного числа дробную часть и преобразовывает результате к целочисленному типу.
То есть перед преобразованием выполняет то же действие, которое делает функция trunc
Старый 06.07.2007, 16:32   #7  
SerAl is offline
SerAl
Участник
 
163 / 44 (2) +++
Регистрация: 24.06.2004
Адрес: г. Москва
Ошибся в формулировке вопроса)

Что функция any2int, что real2int, не округляет, а просто отбрасывает дробную часть.

Я спрашиваю, существует ли функция (одна), которая бы объединяла в себе действие any2int(round(realValue, 1)), то есть вместо 2.6 возвращала бы ни 2(как any2int), ни 3.00(как round()), а 3.
Старый 06.07.2007, 16:36   #8  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Нет, думаю одной именно функцией не получиться.
а чем смущает вызов 2ух?
За это сообщение автора поблагодарили: SerAl (1).
Старый 06.07.2007, 16:44   #9  
SerAl is offline
SerAl
Участник
 
163 / 44 (2) +++
Регистрация: 24.06.2004
Адрес: г. Москва
Ни чем. Можно сказать, что желание обусловлено стремлением к прекрасному.
Спасибо всем откликнувшимся. Прошу прошение, что первоначальным сообщением ввел почтенную публику в заблуждение.

Последний раз редактировалось SerAl; 06.07.2007 в 16:46.
Старый 06.07.2007, 16:55   #10  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Можно запихать свою фунгкцию в класс Global. но не рекомендую
Старый 06.07.2007, 17:06   #11  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от belugin Посмотреть сообщение
Можно запихать свою фунгкцию в класс Global. но не рекомендую
А почему не рекомендуешь?
Старый 06.07.2007, 17:13   #12  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
1. Лишнее место, которое надо будет сравнивать при апгрейде
2. Global как-то не сразу обновляется при импорте. Т.е. надо еще что-то делать, чтоб увидеть измеения (перевойти что ли?)

Я обычно делаю отдельные классы типа StrUtils со статическими методамти
Старый 06.07.2007, 17:44   #13  
Bars is offline
Bars
Участник
Аватар для Bars
 
312 / 14 (1) ++
Регистрация: 04.03.2005
Адрес: Москва
А функция округления decround не подходит ?
За это сообщение автора поблагодарили: Poleax (1).
Старый 06.07.2007, 17:46   #14  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от Bars Посмотреть сообщение
А функция округления decround не подходит ?
Нет, так как она возвращает real, а автор хочет именно int
Старый 06.07.2007, 17:56   #15  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
real2int(x+0.5);
__________________
Axapta v.3.0 sp5 kr2
Старый 06.07.2007, 17:57   #16  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от AndyD Посмотреть сообщение
real2int(x+0.5);
кстати такой подход используется в InventTable::setMinMaxQty() (квантование)
работает, проверял

та же идея, но другая функция

Последний раз редактировалось kashperuk; 06.07.2007 в 18:01.
Старый 06.07.2007, 17:59   #17  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
1. + -- это тоже функция. Ну, почти...
2. я бы предпочел any2int(trunc(
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Округление в налогах George Nordic DAX: Функционал 13 20.11.2006 10:12
Неверное округление физ. Обновляемого количества товара fur-lined DAX: Функционал 14 10.11.2006 11:02
округление в OLAP xconsul DAX: Администрирование 2 19.11.2005 14:33
Округление в спецификациях chel DAX: Функционал 2 17.08.2004 11:14
Тип проводки - округление накладной по закупке Ann DAX: Функционал 0 23.06.2004 14:05

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

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

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