• 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

Aruba Cloud - Virtual Private Server VPS
+1 głos
715 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,238 wizyt
0 głosów
0 odpowiedzi 143 wizyt
pytanie zadane 28 stycznia 2016 w C i C++ przez JKluseczka Obywatel (1,430 p.)
0 głosów
2 odpowiedzi 1,183 wizyt
pytanie zadane 26 grudnia 2015 w C i C++ przez John Doe Obywatel (1,720 p.)

93,279 zapytań

142,278 odpowiedzi

322,298 komentarzy

62,599 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

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!

...