13.10.2004, 13:23 | #21 |
сибиряк
|
Цитата:
Изначально опубликовано maxsmirnov
...и, протестируйте, пожалуйста, кто-нибудь на 2.5 PHP код:
2.5 SP1HF1
__________________
С уважением, Вячеслав. |
|
13.10.2004, 13:25 | #22 |
Участник
|
правильно пишет.
округление работает |
|
13.10.2004, 13:26 | #23 |
Модератор
|
Это нормально. Функции вывода округляют до 3го знака после запятой.
Т.е. максимум, что выведет, это 9999.994. потом округлит. Как print, так и strfmt. С Уважением, Георгий |
|
13.10.2004, 13:29 | #24 |
сибиряк
|
Цитата:
Изначально опубликовано Hamster
правильно пишет. округление работает
__________________
С уважением, Вячеслав. |
|
13.10.2004, 13:29 | #25 |
Модератор
|
Он и до этого округлит, но выведет 9999,99
а вот 9999,995 - уже напишет 10000. И только на одинаковых слагаемых, над которыми были произведены преобразования, в ходе которых получалась бесконечная дробь, заметьте. |
|
13.10.2004, 13:41 | #26 |
----------------
|
Проверил на 2.5 - аналогичный случай
Цитата:
И только на одинаковых слагаемых, над которыми были произведены преобразования, в ходе которых получалась бесконечная дробь
real a = 9999.999999999997; real b = 9999.999999999998; a+b = 10000 |
|
13.10.2004, 14:04 | #27 |
Участник
|
2 Hezl
------------------------------------ Дело не в точности - 9999.9999999999999 будет суммировать нормально ------------------------------------ Неудачный пример. Дело в том что Аксапта сначала округляет константы до приемлемого вида. В данном примере после компиляции 9999.9999999999999 будет рассматриваться виртуальной машиной как 10000. Можете проверить под отладчиком : real d = 9999.9999999999999; // реально заносится 10000. Поэтому с таким числом ошибок и не возникало. Реально работа шла с константой 10000. Я думаю то же самое при использовании числовых констант в выражениях. |
|
13.10.2004, 15:41 | #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). |
13.10.2004, 16:05 | #29 |
Участник
|
Цитата:
Изначально опубликовано Maxim Gorbunov
2.5 SP1 RU - работает правильно (то есть 20000 выдает). Опытным путем установлено, что если сумма цифр в последней позиции больше или равна 15, появляется ошибка. Для остальных значений работает верно. |
|
13.10.2004, 16:18 | #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 |
|
13.10.2004, 16:26 | #31 |
Шаман форума
|
Предлагаю использовать фичу для тестового забега в сервисную систему (http://www.axforum.info/forums/showt...6623#post46623)
|
|
13.10.2004, 17:41 | #32 |
Участник
|
2.5 SP3
на 2.5 SP3 тоже все как нада - 20 000
|
|
13.10.2004, 17:46 | #33 |
Участник
|
Re: 2.5 SP3
Цитата:
Изначально опубликовано if_maks
на 2.5 SP3 тоже все как нада - 20 000 |
|
13.10.2004, 17:50 | #34 |
Участник
|
Re: Re: 2.5 SP3
Цитата:
Изначально опубликовано Diman
Неа. 10 000. |
|
13.10.2004, 17:51 | #35 |
Участник
|
Подозреваю что это зависит от (в том числе)
1) конфигурации (3-2 звенка) 2) версии ОС |
|
13.10.2004, 17:55 | #36 |
Участник
|
2.5
а да простите - ошибся
Axapta 2.5 SP2 Build #7.1 20 000 т.е. можно предположить что SP3 для 2.5 несет эту "фичу" |
|
14.10.2004, 05:56 | #37 |
NavAx
|
Цитата:
Изначально опубликовано komar
Предлагаю использовать фичу для тестового забега в сервисную систему (http://www.axforum.info/forums/showt...6623#post46623) да, забавненько. Сейчас проснется мой партнер...
__________________
И все они создания природы... |
|
15.10.2004, 15:14 | #38 |
Участник
|
Нашедший ошибку
А я как раз человек, который эту ошибку обнаружил! )
Самое интерестное, что я нашел эту "фичу" как раз на реальных вычислениях в отчете - у меня был отчет выгружаемый в Excel где я "руками" расчытывал некие итоги из сумм умноженных на коэффициенты. И вот в этом отчете на реальных данных при расчете получалось два числа 9999.999999999999, которые при отображении показывались, действительно как 10000, но при сложении давали тоже 10000 ;((( Удалось обойти благодоря округлению сумм после умножения на коэфициент. Теперь аккуратнее отношусь к подобным вещам. Вот такая печальная история ) |
|
15.10.2004, 15:48 | #39 |
Участник
|
Интересно, и что у Вас такими цифрами измеряется. (я про хвостик дроби)
|
|
15.10.2004, 16:29 | #40 |
Участник
|
А дело даже не в хвостике.
Точка может стоять в любом месте, и даже её может совсем не быть! Всё единно результат не правильный! |
|
Теги |
баг, математика, округление |
|
Похожие темы | ||||
Тема | Ответов | |||
Абстрактный классификатор | 52 | |||
Здравствуйте дети! :) - еще одна ошибка | 11 | |||
Просмотр SQL запросов к БД с помощью файла Log | 3 | |||
Виртуальные поля | 6 |
|