Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Proste operacje na liczbach

Ostatnio zmodyfikowano 2012-10-23 17:02
Autor Wiadomość
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??

C/C++
#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?
P-67333
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:

C/C++
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??
P-67334
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.
P-67335
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?

P-67336
crash
» 2012-10-23 16:11:18
Czy jeśli szklanka jest na herbatę, a wlejesz do niej benzynę, to jest wtedy kanistrem? Albo:

C/C++
string s = "1234";

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).
P-67339
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?

jest stringiem.
Zmienna zadeklarowana jako string jest zawsze traktowana jako string jeśli nie jest konwertowana, ale to już temat na inny wątek.
P-67341
maze
Temat założony przez niniejszego użytkownika
» 2012-10-23 16:21:24
okey, dzieki Panowie, wszytsko jasne.
P-67342
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 :)

C/C++
string s = "123.45";
double d = strtod( s.c_str(), NULL );

//s jest nadal stringiem
P-67343
« 1 » 2
  Strona 1 z 2 Następna strona