06.07.2007, 15:52 | #1 |
Участник
|
Округление
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 */ } |
|
06.07.2007, 16:18 | #2 |
Участник
|
any2int
|
|
06.07.2007, 16:24 | #3 |
Участник
|
То ли я дурак, то ли вы что-то напутали.
Есть А. Возвращает В. Вы спрашиваете, есть ли какое-то Х, которое возвращает В? |
|
06.07.2007, 16:24 | #4 |
Участник
|
|
|
06.07.2007, 16:28 | #5 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: SerAl (1), oip (2). |
06.07.2007, 16:29 | #6 |
Участник
|
Именно.
any2int отбрасывает у действительного числа дробную часть и преобразовывает результате к целочисленному типу. То есть перед преобразованием выполняет то же действие, которое делает функция trunc |
|
06.07.2007, 16:32 | #7 |
Участник
|
Ошибся в формулировке вопроса)
Что функция any2int, что real2int, не округляет, а просто отбрасывает дробную часть. Я спрашиваю, существует ли функция (одна), которая бы объединяла в себе действие any2int(round(realValue, 1)), то есть вместо 2.6 возвращала бы ни 2(как any2int), ни 3.00(как round()), а 3. |
|
06.07.2007, 16:36 | #8 |
Участник
|
Нет, думаю одной именно функцией не получиться.
а чем смущает вызов 2ух? |
|
|
За это сообщение автора поблагодарили: SerAl (1). |
06.07.2007, 16:44 | #9 |
Участник
|
Ни чем. Можно сказать, что желание обусловлено стремлением к прекрасному.
Спасибо всем откликнувшимся. Прошу прошение, что первоначальным сообщением ввел почтенную публику в заблуждение. Последний раз редактировалось SerAl; 06.07.2007 в 16:46. |
|
06.07.2007, 16:55 | #10 |
Участник
|
Можно запихать свою фунгкцию в класс Global. но не рекомендую
|
|
06.07.2007, 17:06 | #11 |
Участник
|
А почему не рекомендуешь?
|
|
06.07.2007, 17:13 | #12 |
Участник
|
1. Лишнее место, которое надо будет сравнивать при апгрейде
2. Global как-то не сразу обновляется при импорте. Т.е. надо еще что-то делать, чтоб увидеть измеения (перевойти что ли?) Я обычно делаю отдельные классы типа StrUtils со статическими методамти |
|
06.07.2007, 17:44 | #13 |
Участник
|
А функция округления decround не подходит ?
|
|
|
За это сообщение автора поблагодарили: Poleax (1). |
06.07.2007, 17:46 | #14 |
Участник
|
Нет, так как она возвращает real, а автор хочет именно int
|
|
06.07.2007, 17:56 | #15 |
Участник
|
real2int(x+0.5);
__________________
Axapta v.3.0 sp5 kr2 |
|
06.07.2007, 17:57 | #16 |
Участник
|
кстати такой подход используется в InventTable::setMinMaxQty() (квантование)
работает, проверял та же идея, но другая функция Последний раз редактировалось kashperuk; 06.07.2007 в 18:01. |
|
06.07.2007, 17:59 | #17 |
Участник
|
1. + -- это тоже функция. Ну, почти...
2. я бы предпочел any2int(trunc( |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Округление в налогах | 13 | |||
Неверное округление физ. Обновляемого количества товара | 14 | |||
округление в OLAP | 2 | |||
Округление в спецификациях | 2 | |||
Тип проводки - округление накладной по закупке | 0 |
|