Как округлить сумму в алгоритме?

ПНР и сопровождение

Модераторы: m0p3e, edward_K, Модераторы

Ответить
galera
Посетитель
Сообщения: 30
Зарегистрирован: 12 июл 2006, 15:14
Откуда: Красноярск
Контактная информация:

Как округлить сумму в алгоритме?

Сообщение galera »

При настройке алгоритма по врем.разницам приходится сравнивать стоимость ОС(Stoim) с полным износом ОС(SumIzn+SiznM). И часто условия (например Stoim <= SumIzn+SiznM)не срабатывают, так как Stoim=634783.0000000001, а к примеру SumIzn=634782 и SiznM=1, в карточке единички на хвосте конечно не видно. И откуда она берется? Ведь, принимая к учету ОС, вводим стоимость рубли да копейки, и таких кривых сумм дофига. да хрен с ними. Хочу округлить эту заразу, пишу round(SPKATOS.Stoim,2), в ответ те же 634783.0000000001. Че за глюк не знаю, если ручками ввести длинную стоимость, то округляет. Как отрезать или округлить?
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

Попробуй так
if abs(stoim-sumizn-siznm)<0.005 then ...
Ros
Сообщения: 9
Зарегистрирован: 25 май 2006, 12:14

Сообщение Ros »

попробуй в каталоге методов учета, по нужному методу учета, в поле"Округление износа" поставить -округлять по правилам >=0.5 и поставь округлять до 0.01
galera
Посетитель
Сообщения: 30
Зарегистрирован: 12 июл 2006, 15:14
Откуда: Красноярск
Контактная информация:

Сообщение galera »

Проверила, какое округление стоит в методах учета в ОС. Так и стоит - по правилам >=0.5 и округлять до 0.01, стандарт наверное. Да это только к износу и относится, но я поэксперементировала с разными значениями, моим числам не помогло. Завожу карточку ОС для пробы, ставлю стоимость 900, в карточке 900 и стоит, но если, находясь в этом же поле стоимости, нажимаю a+b (Вычислить и модифицировать) то вижу: Выражение SPKATOS.STOIM
Величина 900.0000000000001

все, полезла в таблицу SPKATOS , визуально там 900.0000000000001000, но если выделить, то 900
хрень полная.
Ведь в алгоритме программа при сравнении все-таки учитывает эти единички на хвосте, да и округлить их не дает, потому что их как бы нет. Наверное из-за формата в таблицах, у Stoim (Double. размер 8) и что? или смещение тут роль играет? 16-ричный формат? ХЗ. Поставила условие примерно как Алексей советует.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

сделайте trunc(????,0)
Ответить