Текущее время: Пт, июл 18 2025, 11:53

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Округление чисел
СообщениеДобавлено: Чт, май 12 2011, 15:03 
Специалист
Специалист

Зарегистрирован:
Пт, ноя 06 2009, 08:29
Сообщения: 243
Необходимо округлить переменную типа P до десятков. Нашел функцию ROUND, но что-то не получается ее правильно использовать хотя пример взял отсюда... Подкиньте примерчик пожалуйста.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Округление чисел
СообщениеДобавлено: Чт, май 12 2011, 15:13 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, янв 30 2007, 19:13
Сообщения: 74
Пол: Мужской
Передавайте входному параметру DECIMALS отрицательное значение.
В ФМ'е к нему есть описание:

Number decimal places, to which rounding is to be carried out

Negative values are also allowed here:
For positive values count to the right from the decimal point, for negative values, to the left.
E.g.: 1234,1234 rounded to -2 decimal places equals 1200
1234,1234 rounded to 2 decimal places equals 1234,12


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Округление чисел
СообщениеДобавлено: Чт, май 12 2011, 16:15 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, май 12 2011, 16:06
Сообщения: 351
Цитата:
Необходимо округлить переменную типа P до десятков. Нашел функцию ROUND...
Если использование ROUND не принципиально.
Code:
DATA: p TYPE p DECIMALS 7 VALUE '1234.1234'.
DATA: i TYPE i.

WRITE: / p.
i = p / 10.
p = i * 10.
WRITE: / p.
Результат:
Code:
1.234,1234000
1.230,0000000


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Округление чисел
СообщениеДобавлено: Пт, май 13 2011, 05:55 
Специалист
Специалист

Зарегистрирован:
Пт, ноя 06 2009, 08:29
Сообщения: 243
LAT: Спасибо Вам. Ваш пример работает и меня устраивает, но хотелось бы разобраться с функцией ROUND.
Я ее вызываю так:
Code:
data:
      n1 type p DECIMALS 2,
      n2 type p DECIMALS 2.

n1 = '125.12'.

call function 'ROUND'
  exporting
    DECIMALS       = -2
    input               = n1
IMPORTING
   OUTPUT              = n2
EXCEPTIONS
   INPUT_INVALID       = 1
   OVERFLOW            = 2
   TYPE_INVALID        = 3
   OTHERS              = 4

но в итоге в переменной n2 то же самое число что и в n1. Что я делаю не так?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Округление чисел  Тема решена
СообщениеДобавлено: Пт, май 13 2011, 07:23 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 01 2004, 12:17
Сообщения: 298
Пол: Мужской
Code:
CALL FUNCTION 'ROUND'
  EXPORTING
    decimals      = -1 "
    input         = n1
    sign          = 'X'
  IMPORTING
    output        = n2
  EXCEPTIONS
    input_invalid = 1
    overflow      = 2
    type_invalid  = 3
    OTHERS        = 4.

P.S. См код:
[code]
IF SIGN NE SPACE. "<--!!!
PERFORM ROUNDING USING INPUT SIGN DECIMALS.
ENDIF.
.[code]
*


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Округление чисел
СообщениеДобавлено: Пт, май 13 2011, 09:22 
Специалист
Специалист

Зарегистрирован:
Пт, ноя 06 2009, 08:29
Сообщения: 243
RA: Спасибо теперь буду знать.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB