Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

double, int w C+ ??

tobi2
-
-
Posty:12
Rejestracja:5 maja 2003, o 20:11
Kontaktowanie:
double, int w C+ ??

Postautor: tobi2 » 17 gru 2005, o 01:10

witam

Jak mozna przekonwertowac zienna typu "double" na "int" w C+ ??

pozdr

petersz
-
-
Posty:580
Rejestracja:2 gru 2005, o 18:26
Lokalizacja:---

Postautor: petersz » 17 gru 2005, o 13:17

Witam! Napisałem wszystko w kodzie i objaśniłem nieco komentarzami; najlepiej chyba będzie go skompilować i zobaczyć :). Mam nadzieję, że pomogłem i troszkę wyjaśniłem...

Kod: Zaznacz cały

#include <conio.h> #include <iostream> using namespace std; int main() { double zmienna_double = 473.54; // konwertujemy bardzo prosto :) // zapisujemy do int'a zmienną typu double - zostanie tylko część całkowita; // aby kompilator nie wyświetlał ostrzeżenia, można wykonać tzw. rzutowanie // - informujemy kompilator, że CELOWO zapisujemy double do int'a int zmienna_int = (int) zmienna_double; cout << "double: " << zmienna_double << "\n" << "int: " << zmienna_int << "\n\n"; // wszyscy napewno zauważą, że liczba została przekonwertowana źle! // przecież powinno być 474 zgodnie z zasadą zaokrąglania liczb ;) // jest na to prosty spodób: zmienna_double = 20.7; zmienna_int = (int) (zmienna_double + 0.5); // dodajemy pięć dziesiątych do liczby double... co to da? // a no to, że jeśli dziesiętna część liczby będzie mniejsza od 5 // (np. 20.4), to po dodaniu będzie 20.9 i pozostawieniu tylko części // całkowitej otrzymamy liczbę 20, tak jak powinniśmy. Z kolei, gdy mamy // liczbę np. 20.7, to po dodaniu otrzymamy 21.2 i "obcięciu" części // ułamkowej dostaniemy 21... :D // proste i logiczne :) cout << "double: " << zmienna_double << "\n" << "int: " << zmienna_int << "\n"; getch(); return 0; }
Pozdrawiam!

Awatar użytkownika
Darlington
-
-
Posty:574
Rejestracja:12 lis 2007, o 18:18
Lokalizacja:stąd!

Postautor: Darlington » 7 kwie 2009, o 19:57

Sory, że odkopuję, ale może komuś się przyda:
Musimy dokonać rzutowania jawnego lub niejawnego z typu double na int.

Kod: Zaznacz cały

zmienna1=int(zmienna2);

Kod: Zaznacz cały

zmienna1=(int)zmienna2;
Rzutowanie niejawne:

Kod: Zaznacz cały

zmienna1=(1/zmienna2)*zmienna2*zmienna2;

Wróć do „PLD/FPGA i inne zagadnienia techniki cyfrowej”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości