Как округлить сумму в алгоритме?
Модераторы: m0p3e, edward_K, Модераторы
-
- Посетитель
- Сообщения: 30
- Зарегистрирован: 12 июл 2006, 15:14
- Откуда: Красноярск
- Контактная информация:
Как округлить сумму в алгоритме?
При настройке алгоритма по врем.разницам приходится сравнивать стоимость ОС(Stoim) с полным износом ОС(SumIzn+SiznM). И часто условия (например Stoim <= SumIzn+SiznM)не срабатывают, так как Stoim=634783.0000000001, а к примеру SumIzn=634782 и SiznM=1, в карточке единички на хвосте конечно не видно. И откуда она берется? Ведь, принимая к учету ОС, вводим стоимость рубли да копейки, и таких кривых сумм дофига. да хрен с ними. Хочу округлить эту заразу, пишу round(SPKATOS.Stoim,2), в ответ те же 634783.0000000001. Че за глюк не знаю, если ручками ввести длинную стоимость, то округляет. Как отрезать или округлить?
-
- Посетитель
- Сообщения: 30
- Зарегистрирован: 12 июл 2006, 15:14
- Откуда: Красноярск
- Контактная информация:
Проверила, какое округление стоит в методах учета в ОС. Так и стоит - по правилам >=0.5 и округлять до 0.01, стандарт наверное. Да это только к износу и относится, но я поэксперементировала с разными значениями, моим числам не помогло. Завожу карточку ОС для пробы, ставлю стоимость 900, в карточке 900 и стоит, но если, находясь в этом же поле стоимости, нажимаю a+b (Вычислить и модифицировать) то вижу: Выражение SPKATOS.STOIM
Величина 900.0000000000001
все, полезла в таблицу SPKATOS , визуально там 900.0000000000001000, но если выделить, то 900
хрень полная.
Ведь в алгоритме программа при сравнении все-таки учитывает эти единички на хвосте, да и округлить их не дает, потому что их как бы нет. Наверное из-за формата в таблицах, у Stoim (Double. размер и что? или смещение тут роль играет? 16-ричный формат? ХЗ. Поставила условие примерно как Алексей советует.
Величина 900.0000000000001
все, полезла в таблицу SPKATOS , визуально там 900.0000000000001000, но если выделить, то 900
хрень полная.
Ведь в алгоритме программа при сравнении все-таки учитывает эти единички на хвосте, да и округлить их не дает, потому что их как бы нет. Наверное из-за формата в таблицах, у Stoim (Double. размер и что? или смещение тут роль играет? 16-ричный формат? ХЗ. Поставила условие примерно как Алексей советует.