![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Pfailed |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
Здравствуйте.
Я столкнулся сегодня с очень удивительной для меня вещью. При сравнении, казалось бы, двух одинаковых чисел я получаю результат что эти числа не равны. Я что то упустил при изучении Perl? Баг это или фича? perl --version
Код вызывающий аномалии:
Результат выполнения этого кода:
Подскажите пожалуйста. Это сообщение отредактировал(а) Pfailed - 19.7.2009, 10:22 |
||||||
|
|||||||
| kavkaz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 26.12.2007 Репутация: 1 Всего: 2 |
ввиду погрешностей в $i не значение 1, а 1.0000001
нужно округлить. |
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
Спасибо за разъяснение.
Чувствую что, я что-то упустил в этой жизни Еще смущает, что print выводит 1 хотя честнее было бы в таком случаи вывести 1.0000001 |
|||
|
||||
| Logo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Вот статья, поможет разъяснить. http://www.delphikingdom.com/asp/viewitem....&mode=print
Если коротко - в двоичной системе в виде конечной дроби можно представить только дроби, знаменатель, разложенный на простые множители, представляет только двойки. А в десятичной если простые множители знаменателя состоят из двоек и пятерок (2*5=10). Но, к примеру, если в знаменателе есть тройка, получится что-то вроде 0.33333... - бесконечная дробь, с периодом (3). Также в двоичной системе нельзя представить 1/25 конечной дробью. Поскольку числа в памяти хранятся в двоичной системе, конечной дроби, часть числа и теряется. Это сообщение отредактировал(а) Logo - 19.7.2009, 11:20 |
|||
|
||||
| DaemonSuw |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 11.3.2008 Репутация: 3 Всего: 3 |
Math::BigFloat
Это сообщение отредактировал(а) DaemonSuw - 19.7.2009, 20:35 |
||||
|
|||||
| kavkaz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 26.12.2007 Репутация: 1 Всего: 2 |
||||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |