В письме 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: Иван Бессарабов <[email protected]> > >> Subject: [Moscow.pm] int > >> To: "Moscow.pm group" <[email protected]> > >> Message-ID: > >> > >> <[email protected]> > >> 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> [email protected] | http://moscow.pm.org -- Alexander Lourier, http://aml.rulezz.ru/ -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
