Страница 1 из 1
					
				Как округлить сумму в алгоритме?
				Добавлено: 03 мар 2007, 11:51
				 galera
				При настройке алгоритма по врем.разницам приходится сравнивать стоимость ОС(Stoim) с полным износом ОС(SumIzn+SiznM). И часто условия (например Stoim <= SumIzn+SiznM)не срабатывают, так как Stoim=634783.0000000001, а к примеру SumIzn=634782 и SiznM=1, в карточке единички на хвосте конечно не видно. И откуда она берется? Ведь, принимая к учету ОС, вводим стоимость рубли да копейки, и таких кривых сумм дофига. да хрен с ними. Хочу округлить эту заразу, пишу round(SPKATOS.Stoim,2), в ответ те же 634783.0000000001. Че за глюк не знаю, если ручками ввести длинную стоимость, то округляет. Как отрезать или округлить?
			 
			
					
				
				Добавлено: 05 мар 2007, 11:16
				 Алексей
				Попробуй так
if abs(stoim-sumizn-siznm)<0.005 then ...
			 
			
					
				
				Добавлено: 20 мар 2007, 11:32
				 Ros
				попробуй в каталоге методов учета,  по нужному методу учета, в поле"Округление износа" поставить -округлять по правилам >=0.5 и поставь округлять до 0.01
			 
			
					
				
				Добавлено: 21 мар 2007, 10:22
				 galera
				Проверила, какое округление стоит в методах учета в ОС. Так и стоит - по правилам >=0.5 и округлять до 0.01, стандарт наверное. Да это только к износу и относится, но я поэксперементировала с разными значениями, моим числам не помогло. Завожу карточку ОС для пробы, ставлю стоимость 900, в карточке 900 и стоит, но если, находясь в этом же поле стоимости, нажимаю a+b (Вычислить и модифицировать) то вижу:            Выражение  SPKATOS.STOIM
                         Величина     900.0000000000001
все, полезла в таблицу SPKATOS , визуально там 900.0000000000001000, но если выделить, то 900
хрень полная. 
Ведь в алгоритме  программа при сравнении все-таки учитывает эти единички на хвосте, да и округлить их не дает, потому что их как бы нет. Наверное из-за формата в таблицах, у Stoim (Double. размер 

 и что? или смещение тут роль играет? 16-ричный формат? ХЗ.  Поставила условие примерно как Алексей советует.
 
			 
			
					
				
				Добавлено: 21 мар 2007, 10:44
				 edward_K
				сделайте trunc(????,0)