Текущее время: Сб, авг 02 2025, 23:32

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


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

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


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

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