![]() |
#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 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|