| 
			
			 | 
		#21 | 
| 
			
			 сибиряк 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Изначально опубликовано maxsmirnov  
...и, протестируйте, пожалуйста, кто-нибудь на 2.5 PHP код: 
	
			
	![]() 2.5 SP1HF1 
				__________________ 
		
		
		
		
	С уважением, Вячеслав.  | 
| 
	
 | 
| 
			
			 | 
		#22 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			правильно пишет. 
		
		
		
		
		
		
		
	округление работает  | 
| 
	
 | 
| 
			
			 | 
		#23 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Это нормально. Функции вывода округляют до 3го знака после запятой.  
		
		
		
		
		
		
		
	Т.е. максимум, что выведет, это 9999.994. потом округлит. Как print, так и strfmt. С Уважением, Георгий  | 
| 
	
 | 
| 
			
			 | 
		#24 | 
| 
			
			 сибиряк 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Изначально опубликовано Hamster  
правильно пишет. округление работает  
		
				__________________ 
		
		
		
		
	С уважением, Вячеслав.  | 
| 
	
 | 
| 
			
			 | 
		#25 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Он и до этого округлит, но выведет 9999,99 
		
		
		
		
		
		
		
	а вот 9999,995 - уже напишет 10000. И только на одинаковых слагаемых, над которыми были произведены преобразования, в ходе которых получалась бесконечная дробь, заметьте.  | 
| 
	
 | 
| 
			
			 | 
		#26 | 
| 
			
			 ---------------- 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Проверил на 2.5 - аналогичный случай 
		
		
		
		
		
		
		
	Цитата: 
	
		
			И только на одинаковых слагаемых, над которыми были произведены преобразования, в ходе которых получалась бесконечная дробь
		
	 
real a = 9999.999999999997; real b = 9999.999999999998; a+b = 10000  | 
| 
	
 | 
| 
			
			 | 
		#27 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			2 Hezl 
		
		
		
		
		
		
		
	------------------------------------ Дело не в точности - 9999.9999999999999 будет суммировать нормально ------------------------------------ Неудачный пример. Дело в том что Аксапта сначала округляет константы до приемлемого вида. В данном примере после компиляции 9999.9999999999999 будет рассматриваться виртуальной машиной как 10000. Можете проверить под отладчиком : real d = 9999.9999999999999; // реально заносится 10000. Поэтому с таким числом ошибок и не возникало. Реально работа шла с константой 10000. Я думаю то же самое при использовании числовых констант в выражениях.  | 
| 
	
 | 
| 
			
			 | 
		#28 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Изначально опубликовано Wamr  
Проверил на 2.5 - аналогичный случай Цитата: 
	
		
			Изначально опубликовано Wamr  
не совсем так.. real a = 9999.999999999997; real b = 9999.999999999998; a+b = 10000 
				__________________ 
		
		
		
		
	Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Logger (5). | |
| 
			
			 | 
		#29 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Изначально опубликовано Maxim Gorbunov  
2.5 SP1 RU - работает правильно (то есть 20000 выдает). Опытным путем установлено, что если сумма цифр в последней позиции больше или равна 15, появляется ошибка. Для остальных значений работает верно.  
		 | 
| 
	
 | 
| 
			
			 | 
		#30 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Не скажу... Хотя... Кто его знает....  
		
		
		
		
		
		
			 
		
				__________________ 
		
		
		
		
	Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me  | 
| 
	
 | 
| 
			
			 | 
		#31 | 
| 
			
			 Шаман форума 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Предлагаю использовать фичу для тестового забега в сервисную систему (http://www.axforum.info/forums/showt...6623#post46623)
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#32 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			2.5 SP3
			 
			
			на 2.5 SP3 тоже все как нада - 20 000
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#33 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Re: 2.5 SP3
			 Цитата: 
	
		
			Изначально опубликовано if_maks  
на 2.5 SP3 тоже все как нада - 20 000  | 
| 
	
 | 
| 
			
			 | 
		#34 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Re: Re: 2.5 SP3
			 Цитата: 
	
		
			Изначально опубликовано Diman  
Неа. 10 000.  
		 | 
| 
	
 | 
| 
			
			 | 
		#35 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Подозреваю что это зависит от (в том числе) 
		
		
		
		
		
		
		
	1) конфигурации (3-2 звенка) 2) версии ОС  | 
| 
	
 | 
| 
			
			 | 
		#36 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			2.5
			 
			
			а да простите  - ошибся 
		
		
		
		
		
		
		
	Axapta 2.5 SP2 Build #7.1 20 000 т.е. можно предположить что SP3 для 2.5 несет эту "фичу"  | 
| 
	
 | 
| 
			
			 | 
		#37 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Изначально опубликовано komar  
Предлагаю использовать фичу для тестового забега в сервисную систему (http://www.axforum.info/forums/showt...6623#post46623) да, забавненько. Сейчас проснется мой партнер... 
				__________________ 
		
		
		
		
	И все они создания природы...  | 
| 
	
 | 
| 
			
			 | 
		#38 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			А я как раз человек, который эту ошибку обнаружил!  
		
		
		
		
		
		
		
	 )Самое интерестное, что я нашел эту "фичу" как раз на реальных вычислениях в отчете - у меня был отчет выгружаемый в Excel где я "руками" расчытывал некие итоги из сумм умноженных на коэффициенты. И вот в этом отчете на реальных данных при расчете получалось два числа 9999.999999999999, которые при отображении показывались, действительно как 10000, но при сложении давали тоже 10000 ;((( Удалось обойти благодоря округлению сумм после умножения на коэфициент. Теперь аккуратнее отношусь к подобным вещам. Вот такая печальная история  )
		 | 
| 
	
 | 
| 
			
			 | 
		#39 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Интересно, и что у Вас такими цифрами измеряется. (я про хвостик дроби)
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#40 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А дело даже не в хвостике. 
		
		
		
		
		
		
		
	Точка может стоять в любом месте, и даже её может совсем не быть! Всё единно результат не правильный!  | 
| 
	
 | 
| Теги | 
| баг, математика, округление | 
| 
	
	 | 
	
		
			 
			Похожие темы
		 | 
	||||
| Тема | Ответов | |||
| Абстрактный классификатор | 52 | |||
| Здравствуйте дети! :) - еще одна ошибка | 11 | |||
| Просмотр SQL запросов к БД с помощью файла Log | 3 | |||
| Виртуальные поля | 6 | |||
| Опции темы | Поиск в этой теме | 
| Опции просмотра | |
		
  |