-
X-Received: by 2002:aed:2823:: with SMTP id r32mr7207449qtd.201.1578853035094; Sun,
12 Jan 2020 10:17:15 -0800 (PST)
X-Received: by 2002:aed:2823:: with SMTP id r32mr7207449qtd.201.1578853035094; Sun,
12 Jan 2020 10:17:15 -0800 (PST)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
e.net!feeder.erje.net!weretis.net!feeder7.news.weretis.net!news.mixmin.net!aioe
.org!peer03.am4!peer.am4.highwinds-media.com!peer01.iad!feed-me.highwinds-media
.com!news.highwinds-media.com!g89no2142566qtd.0!news-out.google.com!w29ni847qtc
.0!nntp.google.com!g89no2142553qtd.0!postnews.google.com!google-groups.googlegr
oups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Sun, 12 Jan 2020 10:17:14 -0800 (PST)
In-Reply-To: <5...@g...com>
Complaints-To: g...@g...com
Injection-Info: google-groups.googlegroups.com; posting-host=93.174.24.49;
posting-account=FE4hoAoAAADKg8EtnA4bEyQiJf7iqAgV
NNTP-Posting-Host: 93.174.24.49
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: <a...@g...com>
Subject: Re: Porównywanie liczb, double float
From: DMR <m...@g...com>
Injection-Date: Sun, 12 Jan 2020 18:17:15 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3114
X-Received-Body-CRC: 365716543
Xref: news-archive.icm.edu.pl pl.comp.programming:214680
[ ukryj nagłówki ]Sorunia za crossa, ale tu też o tym pisałem. :-)
> 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...
Ale jeśli zrobię tak:
grosze = (int)(f * 99.99);
to problem zniknie raz na zawsze.
Rzecz jasna, wtedy sumy typu x.9951 zł przejdą na x zł 99 gr, co oczywiście formalnie
jest błędem, ale - z drugiej strony - jeszcze poważniejszym błędem jest zaokrąglanie
sum do pełnych groszy, przy jednoczesnym rozbijaniu tematu o pojedyncze miligrosze.
No, ale pytanie jest zasadnicze - czy na skutek zaokrągleń, możliwe jest zajście
przypadku:
(Double - (int)Double) * 1Ex >= 1Ex
dla "rozsądnych" wartości x (biorąc po uwagę zakresy typów, powiedzmy: 0-8)?
Ktoś może potwierdzić/zaprzeczyć?
Najnowsze wątki z tej grupy
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-12 Warszawa => PC Hardware Expert / Specjalista PC <=
- 2025-07-12 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2025-07-12 Warszawa => Administrator IT <=
- 2025-07-12 Warszawa => IT Administrator <=
- 2025-07-12 Warszawa => Asystent/tka ds. Administracji <=
- 2025-07-12 Warszawa => Specjalista/stka ds. Organizacji <=
- 2025-07-12 Warszawa => MENA New Business Manager <=
- 2025-07-12 Gdynia => Controlling systems Consultant <=
- 2025-07-12 Warszawa => Developer Microsoft Dynamics 365 Finance & Operations (D36
- 2025-07-12 Warszawa => Programista Microsoft Dynamics 365 Finance & Operations (D
- 2025-07-12 Warszawa => Dyrektor IT <=
- 2025-07-12 Warszawa => IT Director <=
- 2025-07-12 Czy wypowiedź Kaczyńskiego o Braunie jest skarżalna? ["działa z OBCEJ inspiracji"]
- 2025-07-11 Rejestrator temperatur - termopara, siec
- 2025-07-11 DPD, przeniesienie numerów z a2mobile i z Orange