Текущее время: Вс, июл 27 2025, 15:31

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: тупой вопрос
СообщениеДобавлено: Чт, авг 16 2007, 10:51 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 27 2007, 16:08
Сообщения: 352
Пол: Мужской
есть переменная

A TYPE P decimals 14.
B TYPE P decimals 10.

сделать так получаю оверфлов

B = A.

как сделать правильно с округлением A к 10 знакам?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: тупой вопрос
СообщениеДобавлено: Чт, авг 16 2007, 11:05 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
apetrenko написал:
B = A.

Так переполнения не будет. Вот если наоборот, A = B и если B >= 10, то будет. Только в случае переполнения ни о каком округлении речь идти не может. Нужно ловить exception и дальше уже можно присвоить максимальное значение или как-то по-другому обработать.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: тупой вопрос
СообщениеДобавлено: Чт, авг 16 2007, 11:12 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
apetrenko написал:
есть переменная

A TYPE P decimals 14.
B TYPE P decimals 10.

сделать так получаю оверфлов

B = A.

как сделать правильно с округлением A к 10 знакам?

У меня никакого оверфлов не наблюдается
Code:
DATA: a TYPE p DECIMALS 14.
DATA: b TYPE p DECIMALS 10.

a = '9.99999999999999'.
TRY .
    b = a.
    WRITE: / a, b.
  CATCH cx_sy_conversion_error.
    WRITE: / 'cx_sy_conversion_error'.

ENDTRY.

вернёт
Code:
9,99999999999999     10,0000000000

Возможно переполнение происходит в целой части?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: тупой вопрос
СообщениеДобавлено: Чт, авг 16 2007, 11:25 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 27 2007, 16:08
Сообщения: 352
Пол: Мужской
sibrin написал:
apetrenko написал:
B = A.

Так переполнения не будет. Вот если наоборот, A = B и если B >= 10, то будет. Только в случае переполнения ни о каком округлении речь идти не может. Нужно ловить exception и дальше уже можно присвоить максимальное значение или как-то по-другому обработать.


Вы правы, я немного неправильно написал.


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

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


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

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


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

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