Article View: pl.comp.lang.python
Article #451Re: Bledne zaokraglanie ulamkow
From: Lukasz Kuznia
Date: Sat, 28 Dec 2002 23:29
Date: Sat, 28 Dec 2002 23:29
54 lines
2518 bytes
2518 bytes
> Bzdura: > Po pierwsze: > 31,97 = $1F.61 = $1.F61 * 16. > > Znak: 0 > Cecha: $F61 > Mantysa: 4 Proponuje troche poczytac na temat reprezentacji liczb zmiennoprzecinkowych w maszynach cyfrowych (mantysa, cecha etc. w fl) > Po drugie: > #v+ > /* Number of decimal digits of precision in a double */ > #define DBL_DIG 15 > #v- > (cytat z float.h). Czyli każda liczba o mniej niż 15 cyfrach po przecinku > jest w double reprezentowana DOKŁADNIE. Znaczenie tej stalej mozna znalezc w opisie ISO C, ale zareczam ze nie jest tak kolorowo jak piszesz. > > czyli też w typie > > float w Pythonie. To, co dostajesz, jest najlepszym przybliżeniem. > > Python ma jakieś niejasne zasady precyzji artmetyki. Ktoś wie jakie ? Ma bardzo jasne i klarowne. Tylko rzeczywistosc arytmetyki fl wprawia w zdumienie. > > > Po przetłumaczeniu na ułamek dziesiętny widać, że to ciut mniej > > niż 31.97; następna reprezentowalna wartość jest ciut większa niż > > 31.97. Więc co chcesz uzyskać? Dokładna liczba 31.97 w typie float > > nie istnieje. > > Taak ? > #v+ > /* Number of decimal digits of precision in a float */ > #define FLT_DIG 6 > #v- ISO C > > str pokazuje o jedną mniej cyfr niż repr, więc str od Twojej liczby > > da '31.97'. Więc nie przejmuj się, że jak się ją wpisze w prompcie, > > to widać więcej cyfr (to jest wyświetlane przez repr). > > Fajnie by było wiedzieć jaką logiką kieruje się tutaj python. repr wyswietla 17 cyfr znaczacych, str 12 Pozdrawiam, Lukasz Kuznia
Technical Details
Message-ID:
<aulbvf$jvq$1@news.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.onet.pl!not-for-mailReferences:
<3e09e4d7.2127062@news.icpnet.pl> <slrnb0jrgs.u54.qrczak@qrnik.zagroda> <853jua-58g.ln@fastviper.viper.lan>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.onet.pl!not-for-mail From: "Lukasz Kuznia" <vanctech@poczta.onet.pl> Newsgroups: pl.comp.lang.python Subject: Re: Bledne zaokraglanie ulamkow Date: Sun, 29 Dec 2002 00:29:44 +0100 Organization: news.onet.pl Lines: 57 Sender: vanctech@poczta.onet.pl@vip1.sisco.pl Message-ID: <aulbvf$jvq$1@news.onet.pl> References: <3e09e4d7.2127062@news.icpnet.pl> <slrnb0jrgs.u54.qrczak@qrnik.zagroda> <853jua-58g.ln@fastviper.viper.lan> NNTP-Posting-Host: vip1.sisco.pl X-Trace: news.onet.pl 1041117999 20474 80.48.57.10 (28 Dec 2002 23:26:39 GMT) X-Complaints-To: abuse@onet.pl NNTP-Posting-Date: 28 Dec 2002 23:26:39 GMT X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit