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

Jaka jest różnica między pow(10,2) a 100

VPS Starter Arubacloud
+1 głos
647 wizyt
pytanie zadane 30 października 2015 w C i C++ przez macik1423 Początkujący (480 p.)

Witam, mam problem z linijką kodu

(liczba/pow(10,2))%10

wyskakuje błąd "invalid operands of types 'double' and 'int' to binary 'operands%'. Rozumiem znaczenie błędu, ale gdy zamienie pow(10,2) na poprostu 100 czyli

(liczba/100)%10

to wszystko jest ok, więc moje pytanie: czym się różnią te dwie linijki.

2 odpowiedzi

+4 głosów
odpowiedź 30 października 2015 przez niezalogowany
wybrane 30 października 2015 przez macik1423
 
Najlepsza

pow() domyślnie zwraca liczby jako double, a nie int, z kolei dzielenie modulo można wykonać jedynie na liczbach całkowitych, jeżeli chcesz aby tamta linia ci działała to musisz ją zrzutować na int

(int)(liczba/pow(10,2))%10

 

komentarz 30 października 2015 przez Muminek Dyskutant (8,650 p.)

Nie lepszym sposobem na rzutowanie byłoby użycie static_cast<int>(liczba/pow(10,2))%10?

W końcu rozwój języka coś nam tam w standardzie nowym dołożył ;-)

komentarz 30 października 2015 przez niezalogowany
Jasne, o ile korzystamy faktycznie z c++, a nie c.

Ja jedynie podałem przykładowy kod, aby pominąć niejasności odnośnie tego o co mi chodzi.
+3 głosów
odpowiedź 30 października 2015 przez furas Maniak (53,800 p.)
`pow()` zwraca wartość typu `double` a `100` jest wartością typu `int` - to zaś sprawia, że dalsze obliczenia są robione jako `double` albo jako `int` - ale % nie działa na liczbach `double` tylko `int` więc pojawia się błąd.

---

`pow()` pozwala podnosić do potęgi liczby reczywiste np. `pow(3.1415, 2)` więc musi też zwracać wyniki jako liczby rzeczywiste.

Podobne pytania

0 głosów
2 odpowiedzi 1,167 wizyt
0 głosów
0 odpowiedzi 125 wizyt
pytanie zadane 28 stycznia 2016 w C i C++ przez JKluseczka Obywatel (1,430 p.)
0 głosów
2 odpowiedzi 1,016 wizyt
pytanie zadane 26 grudnia 2015 w C i C++ przez John Doe Obywatel (1,720 p.)

92,770 zapytań

141,695 odpowiedzi

320,518 komentarzy

62,107 pasjonatów

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.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...