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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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