Как округлить сумму в алгоритме?
Модераторы: m0p3e, edward_K, Модераторы
- 
				galera
 - Посетитель
 - Сообщения: 30
 - Зарегистрирован: 12 июл 2006, 15:14
 - Откуда: Красноярск
 - Контактная информация:
 
Как округлить сумму в алгоритме?
При настройке алгоритма по врем.разницам приходится сравнивать стоимость ОС(Stoim) с полным износом ОС(SumIzn+SiznM). И часто условия (например Stoim <= SumIzn+SiznM)не срабатывают, так как Stoim=634783.0000000001, а к примеру SumIzn=634782 и SiznM=1, в карточке единички на хвосте конечно не видно. И откуда она берется? Ведь, принимая к учету ОС, вводим стоимость рубли да копейки, и таких кривых сумм дофига. да хрен с ними. Хочу округлить эту заразу, пишу round(SPKATOS.Stoim,2), в ответ те же 634783.0000000001. Че за глюк не знаю, если ручками ввести длинную стоимость, то округляет. Как отрезать или округлить?
			
			
									
						
										
						- 
				galera
 - Посетитель
 - Сообщения: 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. размер