Может кто то подсказать ссылки в help'e чтобы они объясняли, что это нормальное поведение системы... что в одном случаем происходит round а в другом trunc.
Last edited by err on Tue Jan 15, 2013 5:00 pm; edited 1 time in total
Нет там trunc. Везде идет round.
Напишите WRITE l_value2 для наглядности.
Для понимания float читайте курс, который вам посоветовали. А международный совет - вообще float не используйте. Вроде уже с NW 7.01 SAP сделал новые float типы, например, DECFLOAT34, которые себя нормально ведут и не требуют заведомого определения длины.
Внимание: Для вычислений в арифметике с плавающей запятой
используются операции с плавающей запятой соответствующих
процессоров. Поскольку алгоритмы выполняются над двоичными
числами, могут возникать погрешности. Степень и эффект таких
погрешностей не поддаются оценке.
По поводу round\trunc тоже разобрался... round правда, странный ИМХО.
l_value1 TYPE p DECIMALS 5 value '1.755'
0.0 1.8
0.00 1.76
0.000 1.755
0.0000 1.7550
l_value2 TYPE f value '1.755'
0.0 1.8
0.00 1.75
0.000 1.755
0.0000 1.7550
получается, что округление, делается с учетом размерности приемника + 1.
И при float 1,755 которая во представляется внутри как 0.7549999999999999E+00 при преобразовании к 0.00 преобразуют по факту 1.754, а не 1.755
Внимание: Для вычислений в арифметике с плавающей запятой
используются операции с плавающей запятой соответствующих
процессоров. Поскольку алгоритмы выполняются над двоичными
числами, могут возникать погрешности. Степень и эффект таких
погрешностей не поддаются оценке.
Вы не подумайте, это фича не только абапа, а арифметики с плавающей запятой вообще
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.