• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Modulo liczb zmiennoprzecinkowych.

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
4,169 wizyt
pytanie zadane 20 kwietnia 2015 w C i C++ przez Wiktor Stary wyjadacz (11,120 p.)
Witam, chciałbym otrzymać odpowiedź dlaczego nie mogę stosować modulo przy liczbach zmiennoprzecinkowych.

Pozdrawiam.

3 odpowiedzi

0 głosów
odpowiedź 20 kwietnia 2015 przez Radfler VIP (101,030 p.)

Modulo to dzielenie z resztą. Reszta (czyli wynik), jak sama nazwa wskazuje to liczba całkowita, więc modulo liczb zmiennoprzecinkowych jest bez sensu

1.2 % 6 // co to miałoby być?

 

komentarz 20 kwietnia 2015 przez Radfler VIP (101,030 p.)

Dzielenie z resztą liczb zmiennoprzecinkowych jest bezsensu z matemaycznego punktu widzenia. To chyba tyle laugh

komentarz 20 kwietnia 2015 przez Wiktor Stary wyjadacz (11,120 p.)

Jakoś nie mogę tego pojąć, że dzieląc 2 przez 6 jest ok, a 1,2 przez 6 już nie pasuje. smiley

komentarz 20 kwietnia 2015 przez Radfler VIP (101,030 p.)
Z tego co wiem, to istnieje reguła, że wynik modulo to liczba całkowita.

Więc dla działań:

1.2 % 6  ->  wynik to liczba zmiennoprzecinkowa -> reguła nie została spełniona

7.2 % 1.2  -> tu też reguła nie jest spełniona

7 % 1.2  ->  tu reguła jest spełniona, jednak wynik z automatu staje się liczbą typu double

(nawet gdy jest to liczba całkowita), czyli znowu reguła jest niespełniona.

Nie wiem jak jeszcze mogę to wyjaśnić D: To po prostu kolejna reguła do zapamiętania

tak jak dzielenie przez 0.
komentarz 20 kwietnia 2015 przez Wiktor Stary wyjadacz (11,120 p.)

Dziękuję Tobie bardzo, ale tak dopytywałem, ponieważ do tej pory nie miałem z tym większej styczności.

Mam jeszcze jedno pytanie. Czy mogę zapisać jedną wartość do dwóch zmiennych? Chodzi mi dokładnie o coś takiego:

int x; float y;

cout<<"Podaj liczbę: ";
cin>>x; y;

Czy coś takiego jest możliwe?

*nie mam teraz możliwości tego przetestowania

Pozdrawiam.smiley

komentarz 20 kwietnia 2015 przez katolik6 Dyskutant (8,140 p.)
No chyba raczej cin>>y; x=y; Powinieneś w x mieć y bez przecinka, niezaokrąglone (też nie mam jak sprawdzić).
0 głosów
odpowiedź 20 kwietnia 2015 przez Wally Bywalec (2,840 p.)
Przy liczbach zmiennoprzecinkowych stosuje się http://en.cppreference.com/w/cpp/numeric/math/fmod
0 głosów
odpowiedź 20 kwietnia 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Bo modulo tak nie działa. A jeśli juz chcesz to biblioteka cmath i funkcja fmod(liczba1,liczba2); Pozdrawiam :D

Podobne pytania

+2 głosów
2 odpowiedzi 180 wizyt
0 głosów
1 odpowiedź 3,321 wizyt
0 głosów
1 odpowiedź 6,060 wizyt
pytanie zadane 13 stycznia 2017 w C i C++ przez Szminka93 Nowicjusz (140 p.)

93,156 zapytań

142,170 odpowiedzi

321,877 komentarzy

62,486 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 224p. - Marcin Putra
  2. 224p. - nidomika
  3. 223p. - dia-Chann
  4. 221p. - ssynowiec
  5. 217p. - Mikbac
  6. 216p. - CC PL
  7. 215p. - Łukasz Piwowar
  8. 212p. - zmmz89
  9. 210p. - Adrian Wieprzkowicz
  10. 208p. - rafalszastok
  11. 206p. - Michal Drewniak
  12. 204p. - Łukasz Eckert
  13. 202p. - rucin93
  14. 200p. - robwarsz
  15. 198p. - TheLukaszNs
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...