Неоднократно поднималась тема передачи данных в параметрах REAL с потерей точности.
Прозвучали конкретные рекомендации. Можно я ещё раз их проговорю и покажу реализацию ?
Предположим мы хотим получить некие данные с точностью 2 и 3 знака после десятичной точки (цена и кол-во).
Код: Выделить всё
!!! Возвращает форматированное дробное число как строку
NumFormat Procedure(Real rDigit,Byte bAccuracy = 1) !,String
dDigit Decimal(15,3)
Code
Execute bAccuracy
dDigit = Round(rDigit,.01) ! 1. Цена
dDigit = Round(rDigit,.001) ! 2. Кол-во
end
Return Clip(Left(Format(dDigit, '@n-_15.' & Choose(bAccuracy,'2','3') )))
Это правильное решение для работы с параметрами REAL ? Спасибо !
