maze Temat założony przez niniejszego użytkownika |
[C++] Proste operacje na liczbach » 2012-10-23 14:40:48 Witam, nie wiem dlaczego wynik przy ponizszym programiku nie zwraca spodziewanego wyniku, co tu moze byc nie tak?? #include <iostream> #include <stdio.h> using namespace std;
int main() { double wynik; wynik = 2 / 3; cout << wynik; cout << endl << "Koniec programu"; return 0; }
Program wypisuje, ze zmienna wynik = 0. Jakim sposobem?? Juz troche dalej poszedlem z nauka, ale nie rozumiem dlaczego to nie dziala? |
|
maze Temat założony przez niniejszego użytkownika |
» 2012-10-23 14:44:55 jezeli zapisze 2 i 3 pod zmiennymi typu double to wynik sie zgadza, w taki sposob: double wynik; double a = 2; double b = 3;
wynik = a / b;
cout << wynik;
return 0;
i jest okey, wynik = 0,6667 bodajze, natomiast jezeli 2 i 3 zapisze pod zmiennymi typu "int" , to mimo ze wynik jest typu double, to wychodzi wartosc 0.... moze mnie ktos oswiecic?? |
|
jsc |
» 2012-10-23 15:08:15 Int przyjmuje wartości tylko całkowite, zmuszony do przyjęcia wartości ułamkowej zaokrągli w dół ją do całości. |
|
maze Temat założony przez niniejszego użytkownika |
» 2012-10-23 15:19:10 no ale przeciez, wynik jest typu double, i to on przyjmuje wartosc tego dzialania, wiec dlaczego ma z tym problem??
przeciez int a i b, juz maja przypisane wartosci calkowite, a wynik dzialania na nich jest przypisywany do double?
|
|
crash |
» 2012-10-23 16:11:18 Czy jeśli szklanka jest na herbatę, a wlejesz do niej benzynę, to jest wtedy kanistrem? Albo: Zmienna 's' jest teraz int;em? Nie, jest stringiem. Zmienne typu int przechowują tylko i wyłącznie liczby całkowite, dzielenie w tym wypadku operatorem / daje dzielenie całkowite (bez reszty). |
|
jsc |
» 2012-10-23 16:15:24 Czy jeśli szklanka jest na herbatę, a wlejesz do niej benzynę, to jest wtedy kanistrem? |
Raczej na odwrót: Jeśli do kanistra wleję herbatę, to wtedy jest szklanką. Czy jeśli szklanka jest na herbatę, a wlejesz do niej benzynę, to jest wtedy kanistrem? |
Zmienna zadeklarowana jako string jest zawsze traktowana jako string jeśli nie jest konwertowana, ale to już temat na inny wątek. |
|
maze Temat założony przez niniejszego użytkownika |
» 2012-10-23 16:21:24 okey, dzieki Panowie, wszytsko jasne. |
|
crash |
» 2012-10-23 16:26:15 A jeśli do kanistra wlejesz szklankę to wtedy jest herbatą. Coś w tym jest. Jeśli konwertujesz zmienną typu string, to produkt konwersji jest jakiegoś tam innego typu, ale zmienna będąca stringem, stringiem będzie cały czas :) string s = "123.45"; double d = strtod( s.c_str(), NULL );
|
|
« 1 » 2 |