вторник, 23 августа 2011 г.

Re: Лыжи не едут ...

А утилитарно это в руби делается так: BigDecimal.new((0.29 * 100).to_s) == 29

И не надо эпсилонов, если они не предполагаются алгоритмами.

23 августа 2011 г. 16:28 пользователь Timothy N. Tsvetkov <timothy.tsvetkov@gmail.com> написал:
Кстати, по определению вещественных чисел через бесконечные десятичные
дроби 28.(9) это просто другая запись числа 29.

Поясню почему. Мы принимает такое соглашение потому что вещественное
число в такой записи: a0,a1...an... это число которые лежит между чисел
a0,a1...an и a0,a1...an + 10^(-n) и a0,a1...an(9) = a0,a1...an + 10^(-n)

2011/8/23 apavlyut <apavlyut@gmail.com>:
> Джентельмены, что это:
> Ruby 1.8.7:
> ruby-1.8.7-p334 :001 > 0.29 * 100
>  => 29.0
> ruby-1.8.7-p334 :002 > 0.29 * 100.0
>  => 29.0
> ruby-1.8.7-p334 :003 > (0.29 * 100.0) == 29.0
>  => false
> ruby-1.8.7-p334 :004 > (0.29 * 100) == 29
>  => false
> ну а тут еще веселее - Ruby 1.9.2:
> ruby-1.9.2-p180 :001 > 0.29 * 100
>  => 28.999999999999996
>
> ????
>
> --
> --
> Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
> "RubyOnRails to russian" на группах Google.
> FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
>
> Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
> ror2ru@googlegroups.com
> Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
> ror2ru-unsubscribe@googlegroups.com
> Дополнительные варианты находятся на странице группы
> http://groups.google.com/group/ror2ru?hl=ru

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

 Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
 Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
 Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
 
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

Комментариев нет:

Отправить комментарий