[Moscow.pm] int

Alexander Lourier aml на rulezz.ru
Чт Июн 17 02:50:27 PDT 2010


В письме Thursday 17 June 2010 13:28:32 Михаил Монашёв написал:

> А сколько там всего было цифр на экране? Может калькулятор он был
> 6-разрядным 10-ти битный и при переполнении все биты были 1, что
> давало такой результат.

Скорее, возведение в степень через экспоненту: a^b = exp(ln(a) * b)

$ echo 'e(l(10)*6)' | bc -l
999999.99999999999995205127

>
> AA> У меня был калькулятор "Электроника" с такими яркими зелёными цифрами
> AA> и огромным аппетитом на батарейки. В ответ на возведение 10 в 6ую
> AA> степень он выдавал ответ 999`999.
>
> >> Date: Tue, 8 Jun 2010 16:58:39 +0400
> >> From: Иван Бессарабов <ivan на bessarabov.ru>
> >> Subject: [Moscow.pm] int
> >> To: "Moscow.pm group" <moscow-pm на pm.org>
> >> Message-ID:
> >>      
> >>  <AANLkTil4PUkgNUkm0Ei-05qWRCjdP9C3YMD1taZQlJ7y на mail.gmail.com>
> >> Content-Type: text/plain; charset=UTF-8
> >>
> >> Скрипт:
> >> {{{
> >> #! /usr/bin/perl
> >>
> >> my $a = "19.4016";
> >>
> >> print '$a =           '  . $a            . "\n";
> >> print '$a*10000 =      ' . $a*10000      . "\n";
> >> print 'int($a*1000) =  ' . int($a*10000) . "\n";
> >> }}}
> >>
> >> Результат работы:
> >> {{{
> >> $a =           19.4016
> >> $a*10000 =      194016
> >> int($a*1000) =  194015
> >> }}}
> >>
> >> Да, в "perldoc -f int" написано что "machine representations of
> >> floating-point numbers can sometimes produce counterintuitive
> >> results", но я все равно сильно удивлен. Это нормально, что скрипт так
> >> работает?
>
> AA> --
> AA> Moscow.pm mailing list
> AA> moscow-pm на pm.org | http://moscow.pm.org



-- 
Alexander Lourier, http://aml.rulezz.ru/


Подробная информация о списке рассылки Moscow-pm