-
X-Received: by 2002:ae9:f016:: with SMTP id l22mr47482815qkg.51.1563809086537; Mon,
22 Jul 2019 08:24:46 -0700 (PDT)
X-Received: by 2002:ae9:f016:: with SMTP id l22mr47482815qkg.51.1563809086537; Mon,
22 Jul 2019 08:24:46 -0700 (PDT)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!takemy.news.tel
efonica.de!telefonica.de!weretis.net!feeder7.news.weretis.net!proxad.net!feeder
1-2.proxad.net!209.85.160.216.MISMATCH!b26no2220485qtq.0!news-out.google.com!e1
7ni1148qtg.1!nntp.google.com!b26no2220482qtq.0!postnews.google.com!glegroupsg20
00goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Mon, 22 Jul 2019 08:24:46 -0700 (PDT)
In-Reply-To: <5...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=5.172.255.80;
posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
NNTP-Posting-Host: 5.172.255.80
References: <qdqqh6$n2f$1@dont-email.me> <5d00f035$0$15194$426a74cc@news.free.fr>
<5d011217$0$17348$65785112@news.neostrada.pl>
<qe65vo$18po$1@gioia.aioe.org>
<5...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <0...@g...com>
Subject: Re: Porównywanie liczb, double float
From: fir <p...@g...com>
Injection-Date: Mon, 22 Jul 2019 15:24:46 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.comp.programming:213685
[ ukryj nagłówki ]W dniu piątek, 12 lipca 2019 07:27:56 UTC+2 użytkownik DMR napisał:
> > Zamieszcze tu po raz 473 w ciagu 20 lat podstawową formułkę
> > (Ba! KANON!)
>
>
> To ja poprosiłbym o jakiś patent na odporne na zaokrąglenia rozdzielenie części
całkowitej i ułamkowej w zmiennej typu double.
>
>
>
> > ponaglenia o pilną zapłatę 0.00PLN
>
>
> No właśnie.
> Przykładowo, muszę zrobić: 12345.6789 zł -> 12345 zł 68 gr
>
> Wiadomo:
>
> double suma, f;
> int zlote, grosze;
>
> ...
>
> suma += 0.005;
>
> zlote = (int)suma;
> f = suma - zlote;
> grosze = (int)(f * 100.0);
>
> Problemy mogą pojawić w przypadku wartości praktycznie równych wartościom
całkowitym.
> Gdyby na skutek jakichś zaokrągleń wartość f okazała się ujemna, to nie ma problemu
- (int) i tak "dociągnie" ją do zera.
>
> Gorzej, gdyby np. suma = 1234.9999999999999997, za to teoretycznie f =
0.9999999999999997 za sprawą zabłąkanego bitu na końcu przeskoczyła na f =
1.0000000000000001.
> Wtedy wyjdzie 1234 zł 100 gr...
>
> Chyba, że nie potrzebnie się martwię.
> Testowałem to wielokrotnie dla miliardów złośliwie wygenerowanych danych "z
pogranicza" - ani razu się nie wywaliła.
>
> No, ale... :-)
chyba cos kolega piepszy
zlote = (int)suma;
f = suma - zlote;
grosze = (int)(f * 100.0);
nie chce mi sie nad tym za dlugo zastanawiac ale na oko to bedzie dzialac
zawsze poprawnie (zakladam ze wartosc suma jest dodatnia i ze chodzi o zaokraglenie w
dol, nie mam pojecia jakie reguly zaokraglania pieniedzy panuja w bankach)
Następne wpisy z tego wątku
- 22.07.19 21:56 fir
- 24.07.19 19:19 DMR
- 24.07.19 21:13 AK
- 24.07.19 22:39 fir
- 26.07.19 20:35 AK
- 12.01.20 19:17 DMR
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-11 SEP 1 kV E
- 2024-12-11 DNS restrictions are on
- 2024-12-11 wielkie bu
- 2024-12-11 Białystok => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-11 Aku LiPo źródło dostaw - ktoś poleci ?
- 2024-12-11 Warszawa => Specjalista Bezpieczeństwa Informacji <=
- 2024-12-11 Wrocław => Application Security Engineer <=
- 2024-12-11 Warszawa => Analyst in the Trade Development department (experience wi
- 2024-12-11 Lublin => Programista Delphi <=
- 2024-12-11 Motodziennik #305 Nowy ELEKTRYK za 350 złotych miesięcznie? Kreatywne kredytowanie problemów
- 2024-12-11 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-11 Katowice => Key Account Manager (ERP) <=
- 2024-12-11 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-11 Idzie zima...czyli zaczynamy TETRIS :)
- 2024-12-11 Warszawa => Analityk w dziale Trade Development (doświadczenie z Powe